Добавьте свойство к динамическому объекту, имя которого будет известно только во время выполнения
Я изучил документацию по динамическим объектам, но не смог найти решение своей текущей проблемы.
У меня есть этот код:
dynamic sampleObject = new ExpandoObject();
string columnName = checkBox.Content.ToString();
sampleObject.columName = myObservableCollection;
Теперь имя моего добавленного свойства будет columnName, но я бы хотел, чтобы оно было содержимым моего флажка.
Как мне это реализовать?
Спасибо
1 ответ
Решение
Используйте словарь именованных значений вместо динамических свойств.
Вы можете использовать Преобразователь словаря для привязки к определенным записям в словаре (используя значение параметра преобразователя в качестве ключа). Код ниже по этой ссылке
public class DictionaryItemConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var dict = value as Dictionary<string, string>;
if (dict != null)
{
return dict[parameter as string];
}
throw new NotImplementedException();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
Если вы добавляете столбцы в сетку с помощью кода, вам необходимо создать привязку с правильным параметром конвертера и конвертера имен.