gpt4 book ai didi

c# - 依赖属性更改时 StackPanel 可见性未更新

转载 作者:行者123 更新时间:2023-12-03 10:36:26 26 4
gpt4 key购买 nike

我目前正在使用 MVVM(不是 MVVM Light)在 C#/XAML 中开发一个通用应用程序,并且我在 XAML 部分遇到了麻烦。

我想显示一个或另一个 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是一个 bool 值,我将其转换为 Visibility通过转换器。所以,当 MyProperty在 ViewModel 中更改, View 不会更新。

我已经尝试使用 UpdateSourceTrigger属性(property),但它不工作。此外,我没有绑定(bind)错误,转换器工作正常(我在应用程序启动时只看到一个 StackPanel)。

请记住,除非没有其他解决方案,否则我不想使用后面的代码。

谢谢你的帮助。

最佳答案

我终于放弃并使用了部分背后的代码,现在它工作正常。

关于c# - 依赖属性更改时 StackPanel 可见性未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26617235/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com