如何为现有控件的DependencyProperty添加Value Changed事件?

          主要是利用 DependencyPropertyDescriptor   AddValueChanged   方法, 比如下面的例子为DataGridColumn的VisibilityProperty添加了值更改事件


  DependencyPropertyDescriptor dpd = DependencyPropertyDescriptor .FromProperty( DataGridColumn.VisibilityProperty , typeof(DataGridColumn ));
            if (dpd != null)
            {
                dpd.AddValueChanged (col, delegate
                {
                    //添加值改变处理         
                });
            }
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPF中,可以通过以下方式在用户控件添加资源: 1. 添加控件自身的资源: - 在用户控件的项目中,右键单击“项目” -> “添加” -> “新建项”; - 在弹出的“添加新项”对话框中,选择需要添加的资源类型,例如“图像”,并指定名称; - 将需要使用的资源文件拖拽到刚刚创建的资源项中,即可完成资源添加。 在用户控件中使用这些资源时,可以通过资源的名称来引用,例如: ```xml <Image Source="Resources/MyImage.png"/> ``` 2. 添加控件依赖的外部资源: 如果用户控件依赖于外部资源,例如配置文件、数据库等,可以将这些资源作为控件的依赖属性(Dependency Property)暴露出去,让使用控件的开发者自行设置。添加方法如下: - 在用户控件的代码中,定义需要暴露的依赖属性,例如: ```csharp public static readonly DependencyProperty ConfigFileProperty = DependencyProperty.Register("ConfigFile", typeof(string), typeof(MyControl)); public string ConfigFile { get { return (string)GetValue(ConfigFileProperty); } set { SetValue(ConfigFileProperty, value); } } ``` - 在控件的XAML中,将该依赖属性添加到属性窗口中,例如: ```xml <UserControl x:Class="MyNamespace.MyControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:MyNamespace"> <Grid> <TextBlock Text="Hello, World!"/> </Grid> <local:MyControl.ConfigFile> <Binding Path="ConfigFile" RelativeSource="{RelativeSource AncestorType=UserControl}"/> </local:MyControl.ConfigFile> </UserControl> ``` 在使用控件的XAML中,可以通过设置该属性来指定外部资源的路径,例如: ```xml <Window x:Class="MyNamespace.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:MyNamespace"> <Grid> <local:MyControl ConfigFile="config.xml"/> </Grid> </Window> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值