【问题标题】:XAML Data Binding based on Button Click基于按钮单击的 XAML 数据绑定
【发布时间】:2016-11-08 01:48:46
【问题描述】:

我有,我想一个简单的问题。我有几个按钮,根据单击哪个按钮,需要将数据绑定到我的 DataGrid - 例如,如果单击 Button1,则将字段 A-D 绑定到网格;如果单击 Button2,则将字段 E-J 绑定到网格。我的数据绑定工作正常,但似乎无法集成按钮来确定要绑定的数据。无论按下哪个按钮,都使用相同的 DataGrid,但我需要根据单击的按钮绑定不同的数据。有什么想法吗?

【问题讨论】:

标签: wpf xaml datagrid


【解决方案1】:
  1. 使用ToggleButton 而不是Button,因为它们会暴露IsChecked 属性。

  2. Window.ResourcesDataGrid.Resources下声明Freezable,如<DiscreteObjectKeyFrame x:Key="A-D" Value="True"/>

  3. Window.ResourcesDataGrid.Resources 下定义<BooleanToVisibilityConverter x:Key="BooleanToVisCnvKey"/>

  4. DataGridColumnVisibility绑定到上面(2)中声明的DiscreteObjectKeyFrame .Value,并使用IValueConverterboolean转换为Visibility

    <Window.Resources>
       <DiscreteObjectKeyFrame x:Key="FlagKey" Value="False"/>
       <BooleanToVisibilityConverter x:Key="BooleanToVisCnvKey"/>
    </Window.Resources>
    
    ...
    <DataGrid>
        ...
        <DataGridTextColumn Visibility="{Binding Value, Source={StaticResource FlagKey}, Converter={StaticResource BooleanToVisCnvKey}}" ...>
        ...
    </DataGrid>
    
    ...
    <ToggleButton ... IsChecked="{Binding Value,Source={StaticResource FlagKey}, Mode=TwoWay}" />
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-10
    • 2011-04-05
    • 1970-01-01
    • 2015-05-26
    相关资源
    最近更新 更多