首页 > 其他分享 >【WPF】静态属性资源绑定动态更新

【WPF】静态属性资源绑定动态更新

时间:2024-05-09 23:33:40浏览次数:19  
标签:string 静态 BindTest 绑定 static appTest2 WPF public 属性

1、Xaml 资源文件

    <Application.Resources>
        <ResourceDictionary>
            <local:BindTest x:Key="bindtest"></local:BindTest>
            <SolidColorBrush x:Key="brush" Color="Blue" />
        </ResourceDictionary>
    </Application.Resources>

其中brush是个静态资源,BindTest是个类

2、Xaml调用

<Ellipse Width="100" Height="100" Fill="{DynamicResource brush}" Grid.Row="0"></Ellipse>
//此处必须是DynamicResource
<CheckBox Margin="0,16,0,0" Content="{Binding Path=AppTest, Source={StaticResource bindtest}}" />
<CheckBox Margin="0,16,0,0" Content="{Binding Path=AppTest2, Source={StaticResource bindtest}}" />
//此处必须是StaticResource 

<CheckBox Margin="0,16,0,0" Content="{x:Static local:BindTest.AppTest2}" />
//这样写也可以显示静态属性,但是不支持动态更新数据

3、BindTest 类

两种定义方法,建议使用第二种方法

    public class BindTest
    { 
        //方法1事件名固定和属性名一致
        public static event EventHandler AppTestChanged;
        public static string AppTest { get { return _appTest; } set { _appTest = value; AppTestChanged?.Invoke(null, new EventArgs()); } }

        //方法2 推荐 事件不需要重复定义
        public static string AppTest2
        {
            get => _appTest2;
            set
            {
                _appTest2 = value;
                OnStaticPropertyChanged(new PropertyChangedEventArgs("AppTest2"));
            }
        }
        public static event EventHandler<PropertyChangedEventArgs> StaticPropertyChanged;
        private static void OnStaticPropertyChanged(PropertyChangedEventArgs e)
        {
            StaticPropertyChanged?.Invoke(null, e);
        }


        private static string _appTest = "test1";
        private static string _appTest2 = "test2";
    }

4、修改属性

            BindTest.AppTest = "666";
            BindTest.AppTest2 = "777";
            Application.Current.Resources["brush"] = Brushes.Red;

 

标签:string,静态,BindTest,绑定,static,appTest2,WPF,public,属性
From: https://www.cnblogs.com/mqxs/p/18183326

相关文章

  • vue学习--模板语法(四、属性样式绑定&流程语句)
    目录3.5属性绑定1.Vue如何动态处理属性?2.v-model的底层实现原理分析3.6样式处理1.class样式处理2.style样式处理3.7分支循环结构1.分支结构2.v-if与v-show区别3.循环结构3.5属性绑定1.Vue如何动态处理属性?v-bind指令用法<av-bind:href='url'>跳转</a>缩写形式<a......
  • Zblog Nginx 下二级目录设置伪静态代码
    最近有一个好朋友找我咨询zblog二级目录伪静态的问题,起因是这样的,他之前有zblog搭建了一个站点,然后,现在又想在站点根目录下再搭建一个问答站点,目录名称是这样qa,路径是/xxx/qa/,二级目录搭建完站后,发现URL无法伪静态,针对这个问题需要注意的是:在Nginx服务器配置中,我们需要编写特定的l......
  • dotnet 9 WPF 支持 Style 的 Setter 填充内容时可忽略 Value 标签
    本文记录WPF在dotnet9的一项XAML编写语法改进点,此改进点用于解决编写Style的Setter进行给Value赋值时,不能将Value当成默认内容,需要多写Value标签的问题。通过此改进点可减少两行XAML代码在原先的WPF版本里面,对Style的Setter填充复杂的对象内容时,大概的......
  • webassets:web 静态资源管理工具
    Pythonwebassets库是一个用于管理web静态资源的工具,如CSS、JavaScript等,帮助开发者更有效地管理和优化网站的静态文件。本文将介绍如何安装和使用Pythonwebassets库,以及它的特性、基本功能、高级功能、实际应用场景和总结部分。安装首先,需要安装Pythonwebassets库。可以使......
  • C++基础-如何引入第三方静态库、动态库或自定义库 摘自 https://blog.csdn.net/u01310
    C++无论是内置库还是第三方库,都需要自己手动进行查找、配置、引入等工作。本文即是帮助完成C++项目对于库、框架如何完成依赖引入达成可调用的目的,重点讲述开发工具VisualStudio中的操作静态库(.lib)静态库引入适用用于大部分无开源的第三方库,开发者不需要关心库的具体实现如何,......
  • WPF/C#:ProgressBar的基本使用
    前言在日常开发过程中,如果遇到需要一段时间才能完成的任务,通常需要给用户一个进度条提示。今天给大家介绍的是WPF/C#中ProgressBar的基本使用。ProgressBar的介绍在WPF(WindowsPresentationFoundation)中,ProgressBar是一个用户界面元素,用于显示一个操作的进度。ProgressBar有......
  • 使用libvirt绑定numa node
    初学libvirt,感觉还挺方便的。它能够像daemon一样运行一个稳定的VM,相比直接用qemu命令行是方便多了。这里记录一下我如何绑定numanode。不知道能不能直接在创建虚拟机的时候绑定numa,我是在xml中设置的。安装libvirt,略去。在host上创建一个网桥,libvirt以它上网,我这里命名为virbr0......
  • DHCP中继配置+2种方式绑定固定地址
    目录路由器环境下中继部署PC1配置PC3配置PC4配置Router_relay配置server2配置三层交换机环境下中继部署路由器环境下中继部署PC1配置noiproutinginte0/0noshutipadddhcpPC3配置noiproutinginte0/0noshutipadddhcpPC4配置noiproutinginterfaceEthe......
  • WPF上位机 - 实现TIA Wincc中的输入输出域
    在TIAWincc中输入输出域可以显示PLC中的变量,同时可以改变PLC中的变量,而在上位机中,使用多线程实时读取数据,在输入数据的时候可能PLC数据改变使得上位机数据同时改变。所以需要在文本框获取到焦点的时候断开绑定,失去焦点的时候重新绑定数据。//view代码<TextB......
  • WPF C# construct Grid,DataGrid,Button manually
    usingMicrosoft.Win32;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows;usingSystem.Windows.Controls;usingSystem.Windows.Data;usingSystem.Windows.Documents;usin......