Свойство тега в столбце WPF DataGrid
Мне нужно сохранить строку внутри столбца Datagrid, которая отличается от заголовка.
Это необходимо, потому что я генерирую Datagrid динамически и хочу перевести заголовки столбцов при их генерации. Затем я связываю весь XAML с ContentControl.
Пока проблем нет... Но я хочу изменить порядок столбцов и изменить их размер, поэтому мне нужно найти их в лесу. Для этого мне нужен оригинальный (не переведенный) ColumnHeader.
На мой взгляд, свойство Tag столбца решит эту проблему, но нет:(
1 ответ
В WPF у вас есть практически неограниченные свойства "Tag" с помощью Attached Properties. Присоединенное свойство может быть установлено на любом DependencyObject
, Хорошим примером такого прикрепленного свойства является Grid.Row
, Поскольку вы можете определить их, у вас также есть возможность назвать их чем-то более значимым, чем Tag.
Пример кода для определения присоединенного свойства:
public static class SomeClass {
public static readonly DependencyProperty TagProperty = DependencyProperty.RegisterAttached(
"Tag",
typeof(object),
typeof(SomeClass),
new FrameworkPropertyMetadata(null));
public static object GetTag(DependencyObject dependencyObject) {
return dependencyObject.GetValue(TagProperty);
}
public static void SetTag(DependencyObject dependencyObject, object value) {
dependencyObject.SetValue(TagProperty, value);
}
}
Использование:
<DataGridColumn SomeClass.Tag="abc" />