根据绑定更改GridViewColumn

时间:2019-10-28 10:50:25

标签: c# wpf xaml

我有一个绑定ShowingRecentDocuments,它返回一个布尔值。基于此布尔值,我想在GridView中显示两列之一:

      <ListView ItemsSource="{Binding ModelItems, Mode=OneWay}">
        <ListView.View>
          <GridView>
            <GridViewColumn Header="Templates" 
                            DisplayMemberBinding="{Binding PrettyName}" />

            //If ShowingRecentDocuments == true, show this column
            <GridViewColumn Header="Last Modified" 
                            DisplayMemberBinding="{Binding TimeModified}"/>

            //else show this column
            <GridViewColumn Header="Last Opened"
                            DisplayMemberBinding="{Binding LastOpened}"/>
          </GridView>
        </ListView.View>
      </ListView>

我似乎不能在DataTrigger中使用GridViewColumn,而是只能在GridViewColumn.CellTemplate中使用。我该如何更改此任务列的可见性(或等效值)?

1 个答案:

答案 0 :(得分:1)

我看到两个选择。

  1. 您可以使用相同的数据定义ListViews并操纵其可见性。这意味着您在视图中始终有2个ListView,这很丑陋且具有成本效益。
  2. 您可以适配器these answer并定义一个管理列可见性的受攻击属性。

我希望第二个。

相关问题