当前位置: 首页 > 知识库问答 >
问题:

WPF将GridViewColumn绑定到不同的属性

王云
2023-03-14
<GridViewColumn x:Name="DescriptionColumn" Header="{DynamicResource MyHeader}" >
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding MyText1}"/>        
        </DataTemplate>
    </GridViewColumn.CellTemplate>
</GridViewColumn>

最好的办法是什么?根据显示的数据,我希望绑定到MyText1或MyText2。我怎么做“开关”?

共有1个答案

卜昂熙
2023-03-14

这样做的方法是使用多重绑定...

                <GridViewColumn x:Name="DescriptionColumn" Header="{DynamicResource MyHeader}" >
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Style="{StaticResource TextBlockMultiValue}"/>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>

它使用以下资源...

    <local:MultiValueConverter x:Key="MultiValueConverter"/>
    <Style x:Key="TextBlockMultiValue" TargetType="TextBlock">
        <Setter Property="Text">
            <Setter.Value>
                <MultiBinding Converter="{StaticResource MultiValueConverter}">
                    <Binding Path="MyText1"/>
                    <Binding Path="MyText2"/>
                    <Binding Path="Switch"/>
                </MultiBinding>
            </Setter.Value>
        </Setter>
    </Style>

转换器如下所示...

public class MultiValueConverter : IMultiValueConverter
{
    public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
    {
        if ((bool)values[2] == true)
            return values[0].ToString();
        else
            return values[1].ToString();
    }

    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
 类似资料:
  • 我试图将子类属性绑定到GridViewColumn。我有一个母类M1和三个不同的子类S1、S2和S3。GridViewColumn由类M1的对象填充。我希望将S2的一个属性绑定到这个GridViewColumn的头,而M1中没有实现这个属性。 有人能给我解释一下怎么做吗?

  • 在我的XAML中: 我的gridviewcolumn的可见性现在应该取决于我的集合项的“isVisible”的值。那件事可能吗?

  • 我想解决的一般问题是,一个复选框只有一个datatemplate,然后我可以将它用于listview中的许多不同列(使用gridview)。在我所见过的所有示例中,每个绑定都创建了一个分离模板,这对我来说似乎有些过头了。 我一直试图通过创建gridviewcolumn将设置的附加属性来实现这一点。然后,我可以简单地为绑定到附加属性的复选框设置一个datatemplate。 我遇到的问题实际上是将复

  • GridViewColumnExt是从GridViewColumn继承并添加可见性属性的类。 您可能会看到,我的ListView的ItemsSource被设置为寄存器ObservableCollection。Register类有一个名为vis的bool类型的属性。对于TextBox来说,这一切都很好,但是从GridViewColumnExt don来看,我认为我无法到达集合并绑定到特定的对象。 我

  • 我找不到访问“PR1”的方法,因为它在DataTemplate中,因此不能直接从代码隐藏中访问。绑定不能通过吗?它之前的列(“P2”列)就在test列上,我放入该列只是为了确保该值确实在更新,并且正确显示,但是“ProgressColumn”总是只显示默认值。 在ListView.View>GridView>GridViewColumn>GridViewColumn.CellTemplate>Da

  • 本文向大家介绍wpf 绑定到另一个命名元素的属性,包括了wpf 绑定到另一个命名元素的属性的使用技巧和注意事项,需要的朋友参考一下 示例 您可以绑定到命名元素上的属性,但是命名元素必须在范围内。