WPF自定义控件的自定义属性绑定后不更新问题

需要在绑定时设置属性变更触发

UpdateSourceTrigger=PropertyChanged

例如:

<Border CornerRadius="20">
            <Border.Background>
                <ImageBrush 
                    x:Name="objBackImg" 
                    ImageSource="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=local:AnimationVideoPlayer},Path=CoverImage,UpdateSourceTrigger=PropertyChanged}"/>
            </Border.Background>
</Border>

 

WPF(Windows Presentation Foundation)中自定义控件绑定属性值是构建灵活用户界面的常见需求。自定义控件允许开发者封装特定的功能和外观,以便在应用程序中重复使用。绑定属性值则使得这些控件能够响应外部数据源的变化,实现数据驱动的UI更新。以下是自定义控件绑定属性值的基本步骤: 1. 创建自定义控件类:首先,需要创建一个继承自FrameworkElement或者更高级别控件类的自定义控件类。 2. 定义依赖属性:在自定义控件类中定义依赖属性(DependencyProperty)。依赖属性WPF中用于实现数据绑定、样式化和主题化的机制。它们允许控件的属性值由外部数据源动态决定。 3. 实现依赖属性的注册:在静态构造函数中注册你刚才定义的依赖属性。这一步是必须的,因为依赖属性需要在使用前进行注册。 4. 绑定属性值:在自定义控件的XAML标记或者代码中,使用数据绑定表达式将依赖属性与外部数据源绑定。 例如,假设我们创建了一个名为MyCustomControl的自定义控件,并想绑定一个名为"CustomProperty"的依赖属性: ```csharp public class MyCustomControl : Control { // 定义依赖属性 public static readonly DependencyProperty CustomPropertyProperty = DependencyProperty.Register( "CustomProperty", typeof(string), typeof(MyCustomControl), new PropertyMetadata(default(string))); // 依赖属性的CLR包装器 public string CustomProperty { get { return (string)GetValue(CustomPropertyProperty); } set { SetValue(CustomPropertyProperty, value); } } static MyCustomControl() { // 注册依赖属性 DefaultStyleKeyProperty.OverrideMetadata(typeof(MyCustomControl), new FrameworkPropertyMetadata(typeof(MyCustomControl))); } } ``` 在XAML中,你可以这样绑定这个属性: ```xml <MyCustomControl> <MyCustomControl.CustomProperty> <Binding Path="SomeProperty" Source="{StaticResource dataContextSource}"/> </MyCustomControl.CustomProperty> </MyCustomControl> ``` 在这里,"SomeProperty" 是绑定的数据源中的属性名,"dataContextSource" 是数据上下文的资源名称,它是一个包含数据模型实例的对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值