gpt4 book ai didi

wpf - 仅当某些条件为真时,通过 Binding 将 TextBlock 设为粗体

转载 作者:行者123 更新时间:2023-12-01 20:26:44 24 4
gpt4 key购买 nike

如何通过 BindingboolTextBlock 定义为 FontStyle 为粗体?

<TextBlock 
Text="{Binding Name}"
FontStyle="???">

我真的很想将它绑定(bind)到

public bool NewEpisodesAvailable
{
get { return _newEpisodesAvailable; }
set
{
_newEpisodesAvailable = value;
OnPropertyChanged();
}
}

有没有办法实现这一点,或者我的 Model 属性应该为我进行翻译,而不是直接呈现 bool 呈现 FontStyle

最佳答案

您可以通过 DataTrigger 实现这一点,如下所示:

    <TextBlock>
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding NewEpisodesAvailable}"
Value="True">
<Setter Property="FontWeight" Value="Bold"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>

或者您可以使用IValueConverter它将把 bool 转换为 FontWeight。

public class BoolToFontWeightConverter : DependencyObject, IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
return ((bool)value) ? FontWeights.Bold : FontWeights.Normal;
}

public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
return Binding.DoNothing;
}
}

XAML:

<TextBlock FontWeight="{Binding IsEnable,
Converter={StaticResource BoolToFontWeightConverter}}"/>

确保在 XAML 中将转换器声明为资源。

关于wpf - 仅当某些条件为真时,通过 Binding 将 TextBlock 设为粗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20903720/

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