C# WPF 4.5与静态属性的绑定
我的类中有一个静态属性,如C# WPF 4.5与静态属性的绑定,c#,wpf,xaml,binding,C#,Wpf,Xaml,Binding,我的类中有一个静态属性,如 public partial class ShellWindow { private static Visibility progressbarVisibility = Visibility.Collapsed; public static Visibility ProgressbarVisibility { get { return progr
public partial class ShellWindow
{
private static Visibility progressbarVisibility = Visibility.Collapsed;
public static Visibility ProgressbarVisibility
{
get { return progressbarVisibility; }
set
{
if (progressbarVisibility == value) return;
progressbarVisibility = value;
RaiseStaticPropertyChanged("ProgressbarVisibility");
}
}
public static event EventHandler<PropertyChangedEventArgs> StaticPropertyChanged;
public static void RaiseStaticPropertyChanged(string propName)
{
EventHandler<PropertyChangedEventArgs> handler = StaticPropertyChanged;
if (handler != null)
handler(null, new PropertyChangedEventArgs(propName));
}
}
此绑定不起作用。
我试图遵循这一点,但我没有发现我做错了什么。在.NET 4.5中,您可以将静态属性的更改通知WPF,但我相信这与您通常处理更改的属性的方式不同。必须为每个可以收到更改通知的静态属性创建事件。事件的标题必须为属性名称,且后缀为PropertyChanged
我发现这篇文章可能对你有所帮助:看看这篇文章,我认为它会有帮助:
var binding = new Binding("ShellWindow.ProgressbarVisibility") { Mode = BindingMode.TwoWay };
binding.Source = this;
progressbar = new CircularProgressBar ();
progressbar.SetBinding(VisibilityProperty,
binding);