我不是在讨论这个事件处理程序,而是简单地If Statement检查是否CheckBox已经检查过.到目前为止,我有:
if (chkRevLoop.IsChecked == true){}
Run Code Online (Sandbox Code Playgroud)
但这引发了错误:
无法隐式转换类型'bool?' 'bool'.存在显式转换(您是否错过了演员?)
有没有办法做到这一点,我错过了?
我遇到的问题与DataGrid(WPF)中的复选框有关.我已附上截图以更好地理解问题.
问题:即使其中一个子项未选中,也会检查DataHeader列复选框.我希望解决方案能够解决这个问题,以便在用户明确取消选中其中一个子节点时,应该隐式取消选中ALL(列标题).
请帮助大家......谢谢Plz检查链接.我希望解决方案能够像这样工作.http://www.codeproject.com/Articles/42437/Toggling-the-States-of-all-CheckBoxes-Inside-a-Dat#
<dg:DataGrid.Columns>
<dg:DataGridCheckBoxColumn Binding="{Binding Check}" IsThreeState="True" Width="50">
<dg:DataGridCheckBoxColumn.HeaderTemplate>
<DataTemplate x:Name="dtAllChkBx">
<CheckBox Name="cbxAll" Content="{x:Static properties:Resources.lblAll}"
Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked" />
</DataTemplate>
</dg:DataGridCheckBoxColumn.HeaderTemplate>
</dg:DataGridCheckBoxColumn>
Run Code Online (Sandbox Code Playgroud)
.
private void CheckBox_Unchecked(object sender, RoutedEventArgs e)
{
unchck_all_prd();
dgEnggAcc.Items.Refresh();
}
private void unchck_all_prd()
{
for (int i = 0; i < engg_list.Count; i++)
{
engg_list[i].Check = false;
}
}
private void chck_all_prd()
{
for (int i = 0; i < engg_list.Count; i++)
{
engg_list[i].Check = true;
}
}
public class EnggLst : ObservableCollection<EnggLst>
{
public bool …Run Code Online (Sandbox Code Playgroud) 我有一个绑定到列表的DataGrid,如下所示。
风景:
<DataGrid Name="m_dgWorkItems" ItemsSource="{Binding WorkItems}" AutoGenerateColumns="False" CanUserAddRows="False" Margin="12,70,12,12">
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Selected" Binding="{Binding Selected}" />
<DataGridTextColumn Header="Id" Binding="{Binding Id}" IsReadOnly="True" />
<DataGridTextColumn Header="Summary" Binding="{Binding Summary}" IsReadOnly="True" />
<DataGridTextColumn Header="State" Binding="{Binding State}" IsReadOnly="True" />
<DataGridTextColumn Header="Owner" Binding="{Binding Owner}" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)
ViewModel:
public List<WorkItem> WorkItems
{
get { return m_workItems; }
private set { m_workItems = value; RaisePropertyChanged("WorkItems"); }
}
public class WorkItem
{
public bool Selected { get; set; }
public string Id { get; set; }
public string …Run Code Online (Sandbox Code Playgroud)