Я имею Expander
управление с IsExpanded
свойство, связанное с bool в mvvm модели. Привязка хорошо работает, пока Вы не касаетесь расширителя. После того как Вы нажимаете стрелку в расширителе для расширения, обязательная работа остановок. Установка bool ShowPreview ко лжи в модели не сворачивает расширитель.
<Expander Name="pExpander"
IsExpanded="{Binding Path=ShowPreview,Mode=OneWay}"
Header="Preview">
<TextBlock Text="{Binding Path=Message, Mode=OneWay}"></TextBlock>
</Expander>
Решил мою проблему !!!
Я выяснил случай, что как-то пространство «» нашел свой путь к названию продукта моего приложения, поэтому его называли «первым вторым. APP» вместо «FirstSecond.app». После удаления пространства проблема исчезла!
Я изменил это здесь: Щелкните правой кнопкой мыши по цели Получить информацию Построить вкладку Раздел упаковки Название продукта <- Имя здесь будет использоваться для имени Bundle (.APP)
Надеюсь, это поможет, дайте мне знать!
Ура, Nils
-121--1130128- Если вы удалите режим = Ongy
, это исправить проблему?
При чтении других CTQ (изменения в GUI не влияют на модель), я понимаю Имейте хорошее предложение о том, как ограничить изменение, которое рассматривается базовыми данными. В чем разница в:
myModel.MyProperty = true; // in *your* code behind
и
myModel.MyProperty = true; // done by a binding
Сделайте три вещи,
Убедитесь, что ваша ViewModel
реализует INotifyPropertyChanged
. Ваш пользовательский интерфейс не будет знать об изменении, если ваша модель представления не сообщает ему об изменении свойства.
Измените режим на Двусторонний
, вы хотите, чтобы ваша модель представления обновлялась при изменении расширителя, и вы хотите, чтобы ваш расширитель обновлялся, когда изменяется модель представления
Наконец, если два вышеупомянутых не работают, используйте конвертер отладки, чтобы убедиться, что ваша привязка не работает. есть пример здесь того, как это сделать. Это метод, который нужен каждому разработчику WPF.
Я знаю, что была проблема с переключателями, из-за которой они теряли свои привязки, когда была установлена другая кнопка в группе, я не думаю, что проблема здесь, однако конвертер отладки поможет вам в этом разобраться.
Что меня поймало, так это то, что IsExpanded
- это OneWay
по умолчанию, поэтому
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="{Binding Expanded}"/>
</Style>
работает не так, как я ожидал. Только если вы добавите Mode = TwoWay
, тогда он будет работать (т.е. элемент начнет обращать внимание на мое свойство Expanded
и обновлять его), как в
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="{Binding Expanded, Mode=TwoWay}"/>
</Style>