如何使用IValueConverter转换粗体字体

时间:2013-05-01 13:09:24

标签: c# silverlight xaml ivalueconverter

您好我正在尝试根据组合框选择的类型转换DataGrid中行的字体样式。我没有收到并返回以下错误:

  

“错误18'System.Windows.Documents.Bold'不包含   构造函数que需要1个参数

这是我的班级:

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Data;
using System.IO;
using System.Windows.Media.Imaging;

namespace enLoja.enLoja_Web.Helpers
{
    public class GrupoBoldConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            var weight = new Bold(FontWeights.Normal);
            switch (int.Parse(value.ToString()))
            {
                case 2:
                    weight = new Bold(FontWeights.Bold);
                    break;
                default:
                    weight = new Bold(FontWeights.Normal);
                    break;
            }
            return weight;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}

以下是我装饰数据网格的方法:

<sdk:Page.Resources>
    <Helpers:GrupoBoldConverter x:Key="BoldConverter" />
</sdk:Page.Resources>

...

<sdk:DataGrid.RowStyle>
    <Style TargetType="sdk:DataGridRow">
        <Setter Property="FontWeight" Value="{Binding SINTETICO, Converter={StaticResource BoldConverter}}" />
    </Style>
</sdk:DataGrid.RowStyle>

我知道语法错误是。我的问题是我无法使用正确的选项。 我感谢任何可以提供帮助的人。

1 个答案:

答案 0 :(得分:1)

FontWeight属性需要FontWeight而不是Bold。只返回转换器中的FontWeight