Как я могу использовать 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 ответ
Решение
FontWeight
свойство ожидает FontWeight, а не Bold
, Верните только FontWeight
из вашего конвертера.