gpt4 book ai didi

wpf - 如果值超出范围,则更改文本 block 的颜色

转载 作者:行者123 更新时间:2023-12-03 10:17:21 32 4
gpt4 key购买 nike

我有一个 ListView,其中包含我的 ObservableCollection 对象作为 ItemsSource。此源可以发送随机值。我想根据传入的值将包含值的文本 block 更改为特定颜色。

因此,如果传入的值在范围内,文本 block 应该保持相同的颜色,如果值超出范围,它应该变成红色。

我试过使用 OnPropetryChange ,但我什么都没有...

我也尝试绑定(bind)到前台,但效果不佳。

<ListView x:Name="ListView" ItemsSource="{Binding ReactorCollection}" HorizontalAlignment="Left" Height="310" Margin="348,10,0,0" VerticalAlignment="Top" Width="254" Grid.RowSpan="2">
<ListView.ItemTemplate>
<DataTemplate>
<Border BorderBrush="Black" BorderThickness="1">
<Grid ShowGridLines="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120"/>
<ColumnDefinition Width="40"/>
<ColumnDefinition Width="110"/>
</Grid.ColumnDefinitions>

<TextBlock Grid.Column="0" Text="{Binding Id, Mode=TwoWay}" TextAlignment="Center" FontSize="15" VerticalAlignment="Center"/>
<TextBlock Grid.Column="1" Text="{Binding Name, Mode=TwoWay}" TextAlignment="Center" FontSize="15" VerticalAlignment="Center"/>
<TextBlock Grid.Column="2" Text="{Binding Value, Mode=TwoWay}" TextAlignment="Center" FontSize="15" VerticalAlignment="Center"/>

</Grid>
</Border>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>

这是我的 XAML,它包含的项目中的 ListView,因此它显示名称、ID 和值。

如果有人对我应该如何实现这一点有一些建议,那将对我有很大帮助!

最佳答案

您没有显示任何实际设置颜色的代码。

您可能会做这样的事情来控制表示值超出范围的属性的颜色:

<TextBlock Text="{Binding Value}">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding OutOfRange}" Value="True">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>

在这个例子中,有一个 OutOfRange项目的属性(您的 ReactorCollection 中的项目)。

你可以绑定(bind) Foreground直接属性,但您需要使用 ValueConverter (如果您想进入那个兔子洞,请搜索它......)。

这还假设您已正确绑定(bind) ListView,ReactorCollection 属性正在正确更新(希望您向其中添加项目,而不仅仅是在传入数据上覆盖它)并且集合中的项目类正确实现 INotifyPropertyChanged (如果值在添加到集合后发生变化)。

关于wpf - 如果值超出范围,则更改文本 block 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59440852/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com