gpt4 book ai didi

c# - 如果属性位于单例实例中,则将两个 UIElement 绑定(bind)到同一属性将无法正常工作

转载 作者:太空宇宙 更新时间:2023-11-03 16:30:10 25 4
gpt4 key购买 nike

我从来没有遇到过这个问题,但最近我注意到如果属性驻留在单例中,则双向绑定(bind)到属性将不起作用。

我的意思是“其他”CheckBox 永远不会更新它的值。

关于如何让它发挥作用的任何想法?提前致谢!

单例.cs

public class Singleton : INotifyPropertyChanged
{
private bool panelClosed;

static Singleton()
{
Instance = new Singleton();
}

public event PropertyChangedEventHandler PropertyChanged;

public static Singleton Instance { get; private set; }

public bool PanelClosed
{
get
{
return this.panelClosed;
}

set
{
this.panelClosed = value;
this.NotifyPropertyChanged("PanelClosed");
}
}

private void NotifyPropertyChanged(string info)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(null, new PropertyChangedEventArgs(info));
}
}
}

XAML:

<CheckBox 
Content="Check/Uncheck me"
Height="16" Name="checkBox1"
IsChecked="{Binding Source={x:Static local:Singleton.Instance}, Path=PanelClosed,
UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>

<CheckBox
Content="Sanity Check"
Height="16" Name="checkBox2"
IsChecked="{Binding Source={x:Static local:Singleton.Instance}, Path=PanelClosed,
UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />

最佳答案

这让我有点困惑,但这是一个简单的修复。使用单例没有问题。

改变

this.PropertyChanged(null, new PropertyChangedEventArgs(info));

this.PropertyChanged(this, new PropertyChangedEventArgs(info));

关于c# - 如果属性位于单例实例中,则将两个 UIElement 绑定(bind)到同一属性将无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11107338/

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