问题描述
我正在尝试使用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 (将#修改为@)