Расширитель WPF привязка IsExpanded

Я имею 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>
14
задан Brandon Wamboldt 15 May 2014 в 12:34
поделиться

3 ответа

Решил мою проблему !!!

Я выяснил случай, что как-то пространство «» нашел свой путь к названию продукта моего приложения, поэтому его называли «первым вторым. 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
7
ответ дан 1 December 2019 в 14:21
поделиться

Сделайте три вещи,

Убедитесь, что ваша ViewModel реализует INotifyPropertyChanged . Ваш пользовательский интерфейс не будет знать об изменении, если ваша модель представления не сообщает ему об изменении свойства.

Измените режим на Двусторонний , вы хотите, чтобы ваша модель представления обновлялась при изменении расширителя, и вы хотите, чтобы ваш расширитель обновлялся, когда изменяется модель представления

Наконец, если два вышеупомянутых не работают, используйте конвертер отладки, чтобы убедиться, что ваша привязка не работает. есть пример здесь того, как это сделать. Это метод, который нужен каждому разработчику WPF.

Я знаю, что была проблема с переключателями, из-за которой они теряли свои привязки, когда была установлена ​​другая кнопка в группе, я не думаю, что проблема здесь, однако конвертер отладки поможет вам в этом разобраться.

0
ответ дан 1 December 2019 в 14:21
поделиться

Что меня поймало, так это то, что 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>
6
ответ дан 1 December 2019 в 14:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: