kat*_*tit 4 c# silverlight xaml
我试图使单元格粗体或正常,如果 DataGrid 内的项目新/旧,但偶然发现错误..
看起来像我在这里描述的问题:Why can not bind the Visiblity of a DataGridTemplateColumn in Silverlight 4?
我收到以下错误:
“System.Windows.Data.Binding”类型的对象无法转换为“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}}" />
Run Code Online (Sandbox Code Playgroud)
我的问题是有什么解决方法可以使其正常工作吗?我什至没有使用模板列,它是纯文本列..
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;
}
}
Run Code Online (Sandbox Code Playgroud)
DataGridTextColumn 的 FontWeight 属性不是依赖属性,因此不支持绑定。解决方法是使用带有 TextBox 的 DataGridTemplateColumn 作为 DataTemplate 并在那里设置适当的绑定,如下所示:
<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>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3969 次 |
最近记录: |