【问题标题】:How do you use a CellTemplateSelector with databindings on a GridView?如何在 GridView 上使用 CellTemplateSelector 和数据绑定?
【发布时间】:2014-10-03 17:38:30
【问题描述】:

我正在尝试绑定到 GridView 的 DataContext 上的属性并使用 DataTemplateSelector 将正确的模板分配给单元格,但我似乎找不到正确的方法来执行此操作。绑定到 DisplayMemberBinding 会覆盖模板选择器,但设置 CellTemplateSelector 属性会绑定到 DataContext 而不是我要为其选择模板的属性。

这个答案似乎准确地描述了我正在寻找的内容,但我无法找到有关如何实现它所描述内容的信息:https://stackoverflow.com/a/12519433/1756960

这是我尝试使用但不起作用的方法(为发布而简化):

    <ListView ItemsSource="{Binding Items}">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Name"
                                DisplayMemberBinding="{Binding Name}"
                                CellTemplateSelector="{StaticResource ContentTypeTemplateSelector}" />
                <GridViewColumn Header="Data"
                                DisplayMemberBinding="{Binding}"
                                CellTemplateSelector="{StaticResource ContentTypeTemplateSelector}" />
            </GridView>
        </ListView.View>
    </ListView>

【问题讨论】:

    标签: c# wpf gridview


    【解决方案1】:

    我建议做的第一件事是以两种方式之一来区分您的内容模板选择器。第一种是简单地拥有多个模板选择器类。第二种是有两个实例,它们的模板分配了不同的绑定。

    <Resources>
        <ns:TemplateSelector x:Key="NameTemplateSelector">
            <ns:TemplateSelector.Template1>
                <DataTemplate>
                    <!-- Something bound to Name -->
                </DataTemplate>
            </ns:TemplateSelector.Template1>
        </ns:TemplateSelector>
    
        <ns:TemplateSelector x:Key="DataTemplateSelector">
            <ns:TemplateSelector.Template1>
                <DataTemplate>
                    <!-- Something bound to Data -->
                </DataTemplate>
            </ns:TemplateSelector.Template1>
        </ns:TemplateSelector>
    

    对附加属性的引用(请参阅MSDN)会让您创建一个属性,将其附加到模板选择器,然后从模板选择器的代码中访问该数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多