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


}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM