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


    <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;
    }


    }

  • 相关阅读:
    EditText之边框颜色
    Android之drawable state各个属性详解
    Android-第三天
    Android 问题
    ios VS android
    Android-第二天(2)
    collapse
    2020/3/7
    2020/3/6
    P3825 [NOI2017]游戏
  • 原文地址:https://www.cnblogs.com/sdnyzhl/p/2986381.html
Copyright © 2020-2023  润新知