DataTrigger не изменяет свойство Text
Я пытаюсь использовать триггер данных для стиля, чтобы изменить свойство.
В соответствии с требованиями « Минимальный, полный и проверенный пример » …
Чтобы воспроизвести, сначала создайте приложение WPF в Visual Studio.
- Этот тип CollectionView не поддерживает изменения в SourceCollection из streamа, отличного от streamа Dispatcher
- Имя «XYZ» не существует в пространстве имен «clr-namespace: ABC»
- Как связать массив байтов с изображением в WPF с преобразователем значений?
- Отображение видимости столбцов Bind datagrid MVVM
- Как добавить поведение Blend в стильном сеттере
using System.ComponentModel; using System.Windows; namespace Foo{ /// /// Interaction logic for App.xaml /// public partial class App : Application, INotifyPropertyChanged { private bool _clicked; public bool Clicked { get { return this._clicked; } set { this._clicked = value; this.PropertyChanged?.Invoke( this, new PropertyChangedEventArgs( "Clicked" ) ); } } public event PropertyChangedEventHandler PropertyChanged; } }
В пределах MainWindow.xaml:
True
В пределах MainWindow.xaml.cs –
using System.Windows; namespace Foo{ /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { public MainWindow( ) { InitializeComponent( ); } private void button_Click( object sender, RoutedEventArgs e ) { ( Application.Current as App ).Clicked = !( Application.Current as App ).Clicked; } } }
В качестве побочного примечания – я попытался установить значение триггера данных как раз "True"
, и это также не сработало (триггер не поймал, и текст не изменился, основываясь на установке свойства на новое значение).
Так почему же триггер данных не ловит или не работает здесь? (Либо со статическим ресурсом, либо с литеральным значением)? Еще более актуальным – почему я получаю эту ошибку? «После того, как« DataTrigger »используется (запечатан), его нельзя изменить« ошибка? И каков правильный метод выполнения того, что я пытаюсь сделать здесь? (Предпочтительно, все еще использовать триггер данных, а не конвертер, так как мне нужно переключаться между двумя значениями).
- Ширина столбца DataGrid не обновляется автоматически
- Windows Phone 8.1. Переключение видимости TextBlock в DataTemplate
- Значение * (звездочка) в WPF ColumnDefinition?
- имя не существует в пространстве имен clr-namespace
- Как связать WPF DataGrid с переменным числом столбцов?
- Как сделать элементы WPF ListView повторяющимися по горизонтали, например, горизонтальной полосой прокрутки?
- Как получить доступ к элементу управления внутри шаблона данных в пользовательском интерфейсе C # Metro в коде
- GridView с двумя столбцами, шириной заливки
Локальное значение, назначенное для свойства TextBlock Text, имеет более высокий приоритет, чем значение, заданное Setter в DataTrigger. Для получения дополнительной информации см. « Приоритет значения свойства зависимостей» .
Установите начальное значение Text другим Setter:
Сообщение об ошибке, которое вы видите при использовании Boolean-ресурса, – это просто конструктор XAML, жалующийся. Во время выполнения ошибки нет.