wpf中使用mvvm,解决checkbox全选问题
2013-03-28 11:35
806 查看
<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;
}
}
<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;
}
}
相关文章推荐
- wpf中使用mvvm,解决checkbox全选问题
- androd ListView + CheckBox 解决超出一屏无法全选的问题。
- 解决wpf中使用WinformsHost显示滚动条的问题
- WPF 使用CheckBox实现联动——全选和反选
- (转)解决TreeView中使用JavaScript完成CheckBox全选的办法
- 解决在WinForm 或 WPF中使用WebBrowser来显示本地包含javascript的网页时弹出黄色警告的问题。
- MVVM框架从WPF移植到UWP遇到的问题和解决方法
- glmis项目工作日志4_解决RecyclerView中使用CheckBox时出现数据错乱的问题。
- 解决jquery操作checkbox全选全不选无法勾选问题
- 使用jQuery解决GridView全选问题
- asp:DataGrid之添加asp:CheckBox做全选功能时涉及到绑值问题解决
- listview中使用checkbox滑动或者加载更多数据错乱问题解决方案
- GridView 与CheckBox 结合使用全选的问题
- 解决jquery操作checkbox全选全不选无法勾选问题
- ASP.NET DropDownListCheckBox使用示例(解决回发问题)
- Jquery操作checkbox全选、反选失效的问题解决
- 【WPF开发备忘】使用MVVM模式开发中列表控件内的按钮事件无法触发解决方法
- 解决checkbox全选之后取消全选,再次全选无效问题
- 解决ListView中多选功能使用CheckBox勾选混乱问题
- gridview中使用CheckBox,解决CheckBox数据加载错乱问题