将自定义userControl属性与DependencyProperty绑定

问题描述

我正在尝试使用DependencyProperty绑定自定义UserControl属性

这是我的userControl,值是我要绑定的属性

public partial class MyCustomUserControl: UserControl
{
    bool _value = false;
    public bool Value
    {
        get
        {
            return _value;
        }
        set
        {
            SetState(value);
        }
    
    public static DependencyProperty ValueProperty = DependencyProperty.Register("Value",typeof(bool),typeof(MyCustomUserControl));

}

在这里,我们有了带有InotifyPropertyChanged和公共属性CustomviewmodelValueProperty的viewmodel:

public class Customviewmodel: INotifyPropertyChanged
{

    public event PropertyChangedEventHandler PropertyChanged;
    protected virtual void OnPropertyChanged(string propertyName)
    {
        if (PropertyChanged == null) { return; }
        PropertyChanged(this,new PropertyChangedEventArgs(propertyName));
    }

    protected void SetField<T>(ref T field,T value,string propertyName)
    {
        if (EqualityComparer<T>.Default.Equals(field,value)) return;
        field = value;
        OnPropertyChanged(propertyName);
    }


    private bool _viewmodelValue;
    public bool CustomviewmodelValueProperty
    {
        get { return _viewmodelValue; }
        set { SetField(ref _viewmodelValue,value,nameof(CustomviewmodelValueProperty)); }
    }

查看构造函数

Customviewmodel customviewmodel= new Customviewmodel();
Forms.CustomWindow customWindow = new CustomWindow ()
{
   DataContext = customviewmodel,};

包含MyCustomUserControl和绑定的XAML:

<CustomWindow:MyCustomUserControl x:Name="UserControl1" HorizontalAlignment="Left" VerticalAlignment="Top" Height="48" Width="48" Value="{Binding Path=CustomviewmodelValueProperty,Mode=OneWay}"/>

在这一点上,当我强制PropertyChanged时,它具有一个订阅,但是没有调用MyCustomUserControl中的“值”设置器,我缺少什么?。

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)