我在数据网格中有一列复选框。
<DataGridTemplateColumn CanUserResize="False" Header="" Width="auto">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox Style="{StaticResource CheckBoxSelectTypeStyle}" IsChecked="{Binding Path=Selected}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)
我有一个命令必须取消选中和检查。
<Style x:Key="CheckBoxSelectTypeStyle" TargetType="{x:Type CheckBox}">
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center" />
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Command" Value="{Binding DataContext.CheckedCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}" />
<Setter Property="CommandParameter" Value="{Binding Path=SelectedItems, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}}" />
</Trigger>
<Trigger Property="IsChecked" Value="False">
<Setter Property="Command" Value="{Binding DataContext.UncheckedCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}" />
<Setter Property="CommandParameter" Value="{Binding Path=SelectedItems, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}}" />
</Trigger>
</Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果复选框开始时未选中,而您选中一个,则不会触发任何命令(这就是问题所在)。如果您随后取消选中相同的复选框,则取消选中命令将触发(如预期的那样)。如果您再次选中相同的复选框,将触发检查命令(如预期)。那时该复选框的一切都会正常工作,但其他人仍然有同样的问题。
如果复选框以选中状态开始,它将正常工作。我的问题是当复选框以未选中状态启动时如何触发命令。我找不到任何不工作的理由。
对建议的回应:
我试图为,添加一个触发器 …
在更大的屏幕尺寸上,我有3列内容.在较小的屏幕尺寸上,我希望在带有3个选项卡的选项卡控件中显示内容.
我使用下面的html工作.问题是,如果我对组件绑定的数据进行更改,则不会更新组件的其他副本.因此,如果在屏幕较大时更改数据,则屏幕变小,它会正确切换到标签,但数据不会显示为更新.代码中的实际数据对象更新得很好.
如何同步复制的组件以始终显示相同的组件?基本上,当一个人改变时,另一个人会模仿这些改变.或者,当屏幕较小时,是否有不同/更好的方法来实现在标签中显示内容的相同目标.
<div fxHide fxShow.gt-sm >
<div>
<h3>Column 1</h3>
<custom-component1
[(data)]="data1">
</custom-component1>
</div>
<div>
<h3>Column 2</h3>
<custom-component2
[(data)]="data2">
</custom-component2>
</div>
<div>
<h3>Column 3</h3>
<custom-component3
[(data)]="data3">
</custom-component3>
</div>
<mat-tab-group fxShow fxHide.gt-sm>
<mat-tab label="Column 1">
<div>
<h3>Column 1</h3>
<custom-component1
[(data)]="data1">
</custom-component1>
</div>
</mat-tab>
<mat-tab label="Column 2">
<div>
<h3>Column 2</h3>
<custom-component2
[(data)]="data2">
</custom-component2>
</div>
</mat-tab>
<mat-tab label="Column 3">
<div>
<h3>Column 3</h3>
<custom-component3
[(data)]="data3">
</custom-component3>
</div>
</mat-tab>
</mat-tab-group>
</div>Run Code Online (Sandbox Code Playgroud)