您的位置:首页 > 其它

wpf中使用mvvm,解决checkbox全选问题

2015-06-11 20:09 417 查看
<DataGrid Name="dataGrid" IsReadOnly="False" Width="600" Height="400" AutoGenerateColumns="False" ItemsSource="{Binding GeneryModelList}" >

<DataGrid.Columns>

<DataGridTemplateColumn Width="150">

<DataGridTemplateColumn.Header>

<CheckBox Command="{ Binding DataContext.SelectOrUnSelectAll,RelativeSource={RelativeSource AncestorType=DataGrid}}" Content="全选"></CheckBox>

</DataGridTemplateColumn.Header>

<DataGridTemplateColumn.CellTemplate>

<DataTemplate>

<CheckBox IsChecked="{Binding IsSelected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"></CheckBox>

</DataTemplate>

</DataGridTemplateColumn.CellTemplate>

</DataGridTemplateColumn>

开始原因是由于并不知道使用数据模板,需要加入数据源,要找到数据源的作用域。后面的命令部分代码如下:

public ICommand SelectOrUnSelectAll

{

get { return new GeneryModelSoft.Commands.Command(p => SelectAll()); }

}

protected void SelectAll()

{

if (generyModelList != null&&isSelectFlag==false)

{

for (int i = 0; i < generyModelList.Count; i++)

{

generyModelList[i].IsSelected = true;

}

isSelectFlag = true;

}

else if (generyModelList != null && isSelectFlag == true)

{

for (int i = 0; i < generyModelList.Count; i++)

{

generyModelList[i].IsSelected = false;

}

isSelectFlag = false;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: