您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

资源更改时,静态绑定不会更新

资源更改时,静态绑定不会更新

首先,您property实际上不是财产,而是领域。最小的属性声明如下所示:

public static SolidColorBrush Property { get; set; }

请注意,该名称以大写字母开头,这是C#中广泛接受的编码约定。

因为您还希望每当属性值更改时都发出更改通知,因此您需要声明一个属性更改的事件(对于非静态属性,通常通过实现INotifyPropertyChanged接口来完成)。

对于静态属性,WPF 4.5(或4.0?)中提供了一种新机制,您可以在其中编写如下的静态属性更改事件和属性声明:

public static class AppStyle
{
    public static event PropertyChangedEventHandler StaticPropertyChanged;

    private static void OnStaticPropertyChanged(string propertyName)
    {
        StaticPropertyChanged?.Invoke(null, new PropertyChangedEventArgs(propertyName));
    }

    private static SolidColorBrush property = Brushes.Red; // backing field

    public static SolidColorBrush Property
    {
        get { return property; }
        set
        {
            property = value;
            OnStaticPropertyChanged("Property");
        }
    }

    public static void ChangeTheme()
    {
        Property = Brushes.Blue;
    }
}

与静态属性的绑定将用括号中的属性路径编写:

Background="{Binding Path=(style:AppStyle.Property)}"
其他 2022/1/1 18:14:27 有534人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶