В настоящее время я разрабатываю универсальное приложение в C#/XAML с MVVM (не MVVM Light), и у меня возникают проблемы с частью XAML.Видимость StackPanel не обновляется при изменении свойства зависимостей
Я бы хотел отобразить тот или иной StackPanel
, когда свойство зависимости изменилось в моей модели ViewModel. Я думаю, что код говорит сам за себя.
<StackPanel Visibility="{Binding MyProperty, Converter={StaticResource BooleanToVisibilityConverter}}">
<!-- Some content -->
</StackPanel>
<StackPanel Visibility="{Binding MyProperty, Converter={StaticResource InvertBooleanToVisibilityConverter}}">
<!-- Some another content -->
</StackPanel>
И вот определение свойства зависимости.
public static readonly DependencyProperty MyPropertyProperty = DependencyProperty.Register(
"MyProperty",
typeof (bool),
typeof (MyViewModel),
new PropertyMetadata(true));
public bool MyProperty
{
get { return (bool) GetValue(MyPropertyProperty); }
set { SetValue(MyPropertyProperty, value); OnPropertyChanged(); // Implemented by ReSharper }
}
Я думаю, вы понять это, что MyProperty
является логическим, что преобразовать в Visibility
через преобразователи. Таким образом, когда MyProperty
изменено в ViewModel, представление не обновляется.
Я уже пытался использовать свойство UpdateSourceTrigger
, но он не работает. Кроме того, у меня нет ошибок привязки, и конвертеры работают нормально (я вижу только один StackPanel
при запуске приложения).
Пожалуйста, имейте в виду, что я не хочу использовать код за частью, если нет другого решения.
Благодарим за помощь.
Можете ли вы добавить определение своего свойства зависимостей? –
Вы уведомите об изменении недвижимости? –
@AaronHawkins: Конечно. Я только что отредактировал начальную должность. – Atlasmaybe