Передайте два свойства в стиль DataGridCell с помощью преобразователей.C#

Место общения программистов C#
Anonymous
Передайте два свойства в стиль DataGridCell с помощью преобразователей.

Сообщение Anonymous »

Я хочу создать DataGridCell, который можно установить только для чтения или для редактирования (он также меняет свой внешний вид) в зависимости от свойства.
Я создал стиль для ячейки:< /p> Конвертеры (например, подтверждение концепции, я бы не оставил их такими)

Код: Выделить всё

 public class LockableCellConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
return (values[0].ToString(), (bool)values[1]);
}

public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}

public class LockableCellConverter2 : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string option = parameter.ToString();

try
{
(string text, bool locked) = ((string, bool))value;

if (option == "text")
return text;
else if (option == "locked")
return locked;

return null;
}
catch
{

if (option == "text")
return "";
else if (option == "locked")
return false;

return null;
}
}

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

И вот так он используется в DataGrid Метод преобразования LockableCellConverter вызывается и возвращает то, что я ожидаю, но LockableCellConverter2 никогда не вызывается (Convert и ConvertBack). Я просто получаю сообщение об ошибке привязки XAML: «Значение '(test, True)' не может быть присвоено свойству TextBlock.Text (тип String).»
Может ли кто-нибудь сказать мне, почему конвертер в стиле не получает называется?
Я уже пробовал другой подход, но таким образом мне нужно создать два шаблона данных DataTemplate для каждого столбца, и мне нужно использовать его для нескольких столбцов, поэтому подход с возможностью повторного использования был бы лучше.
п>

Подробнее здесь: https://stackoverflow.com/questions/788 ... converters

Вернуться в «C#»