小编Kur*_*bol的帖子

复选框命令在最初未选中时不会触发

我在数据网格中有一列复选框。

<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)

我的问题是,如果复选框开始时未选中,而您选中一个,则不会触发任何命令(这就是问题所在)。如果您随后取消选中相同的复选框,则取消选中命令将触发(如预期的那样)。如果您再次选中相同的复选框,将触发检查命令(如预期)。那时该复选框的一切都会正常工作,但其他人仍然有同样的问题。

如果复选框以选中状态开始,它将正常工作。我的问题是当复选框以未选中状态启动时如何触发命令。我找不到任何不工作的理由。

对建议的回应:

我试图为,添加一个触发器 …

c# wpf checkbox datagrid command

5
推荐指数
1
解决办法
3607
查看次数

在Angular 4中根据屏幕大小更改内容的显示方式

在更大的屏幕尺寸上,我有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)

html size screen display angular

1
推荐指数
1
解决办法
3958
查看次数

标签 统计

angular ×1

c# ×1

checkbox ×1

command ×1

datagrid ×1

display ×1

html ×1

screen ×1

size ×1

wpf ×1