То, что я хочу сделать, это повторно протестировать Trigger
при возникновении события.Это связано с тем, что Trigger
связывается со свойством Row.RowState
DataRowView
, которое НЕ запускает уведомление PropertyChanged
, требующее триггера for для повторной оценки его состояния.
(см.сообщение в нижней части этой страницы: WpfToolkit DataGrid: выделение измененных строк )
Я могу переустановить Trigger
для каждого элемента управления в случае, подобном этому:
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
Style s = ((TextBox)sender).Style;
((TextBox)sender).Style = null;
((TextBox)sender).Style = s;
}
Но у меня есть DataGrid
со многими элементами управления, и все они используют один из четырех Style
с.Что я хотел бы сделать, это сделать что-то вроде, в коде псевдо:
Style1.reTest();
Style2.reTest();
...
Есть ли способ сделать это?Первая проблема заключается в том, что вы не можете назвать стили, поэтому доступ к ним из xmlns является проблематичным.Вторая проблема заключается в том, что Style
не имеет метода, который обеспечивает эту функциональность.
Любая помощь, наиболее подходящая для использования.
РЕДАКТИРОВАТЬ 1: я могу получить стили, используя словарь ресурсов (можетне думаю, что я не подумал об этом, я предполагал, что их там не будет, потому что я их не назвал).Если вы не назвали их, вы можете получить их вот так (очевидно, изменив тип):
Style s = (Style)Resources[typeof(System.Windows.Controls.TextBox)];
Edit2: я нашел ответ и опубликую его, когда Stackoverflow позволит мне это сделать.Большое спасибо за все ответы:)
Фугу