【问题标题】:DataTrigger WPF数据触发器 WPF
【发布时间】:2016-03-12 11:18:18
【问题描述】:

我有两个列表。事物清单和水果清单。如果事物列表中的项目是水果列表中的水果,我希望突出显示该项目。

我希望这个具有数据绑定和通过 xmal 而不是代码隐藏 b/c 我正在做 MVVM 模式。我已经使用 DataTrigger 和 Converter 进行了尝试,但无法使其正常工作。请帮忙。

谢谢。

    <ListBox ItemsSource="{Binding Things}"
        Name="ListOfThigns"
        Grid.Row="1">
        <DataTemplate>
            <DataTemplate.Triggers>
                <DataTrigger Binding="{Binding Fruits}" >
                    <Setter Property="ListBoxItem.Background" Value="Green"/>
                </DataTrigger>
            </DataTemplate.Triggers>
        </DataTemplate>
    </ListBox>

    <ListBox ItemsSource="{Binding Fruits}"
        Name="ListOfFruits"
        Grid.Column="1"
        Grid.Row="1">
    </ListBox>

【问题讨论】:

  • 如果你正在实现 MVVM,你应该有一个视图模型,其中事物具有 IsFruit 属性。您可以将 DataTrigger 绑定到该属性。

标签: wpf data-binding datatrigger


【解决方案1】:

或者,如果 Fruit 从 Thing 继承(水果就是事物):

    <ListView ItemsSource="{Binding Things}">
        <ListView.Resources>
                <DataTemplate DataType="{x:Type dm:Fruit}">
                    <TextBlock Text="{Binding Name}" Background="RoyalBlue"/>
                </DataTemplate>
                <DataTemplate DataType="{x:Type dm:Thing}">
                    <TextBlock Text="{Binding Name}" />
                </DataTemplate>
        </ListView.Resources>
    </ListView>

【讨论】:

    猜你喜欢
    • 2021-12-20
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    相关资源
    最近更新 更多