gpt4 book ai didi

c# - 将 DataGrid 的 FontWeight 属性绑定(bind)到值转换器

转载 作者:行者123 更新时间:2023-12-03 14:42:21 25 4
gpt4 key购买 nike

如果 DataGrid 中的新/旧项目但偶然发现错误,我正在尝试使单元格变为粗体或正常。

看起来我的问题在这里描述:Why can I not bind the Visiblity of a DataGridTemplateColumn in Silverlight 4?

我收到以下错误:

Object of type 'System.Windows.Data.Binding' cannot be converted to type 'System.Windows.FontWeight'.



我的 XAML 看起来像这样:
<sdk:DataGridTextColumn Header="Subject" Binding="{Binding Subject}" CanUserReorder="True" CanUserResize="True" CanUserSort="True" Width="Auto" FontWeight="{Binding IsNew, Converter={StaticResource BoolToFontWeightConverter}}" />

我的问题是有什么解决方法可以让它工作吗?我什至没有使用模板列,它是纯文本列..
public class BoolToFontWeightConverter : 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 (FontWeight)value == FontWeights.Bold;
}
}

最佳答案

DataGridTextColumn 的 FontWeight 属性不是依赖属性,因此不支持绑定(bind)。一种解决方法是使用带有 TextBox 的 DataGridTemplateColumn 作为 DataTemplate 并在那里设置适当的绑定(bind),例如:

<sdk:DataGridTemplateColumn Header="Subject" 
CanUserReorder="True"
CanUserResize="True"
CanUserSort="True"
Width="Auto">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Subject}" FontWeight="{Binding IsNew, Converter={StaticResource BoolToFontWeightConverter}}"/>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>

关于c# - 将 DataGrid 的 FontWeight 属性绑定(bind)到值转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8275034/

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