Wpf 具有自定义视图元素的MvvM。数据绑定问题
作为数据绑定的新手,我不知道自己做错了什么Wpf 具有自定义视图元素的MvvM。数据绑定问题,wpf,data-binding,mvvm,Wpf,Data Binding,Mvvm,作为数据绑定的新手,我不知道自己做错了什么 我在XAML中定义了一些GUI元素,并将它们与适当的视图模型绑定在一起。到目前为止还不错 我还将一些自定义元素(几何形状)放置在画布中(通过用户控件将画布放置在主窗口中)。我从FrameworkElement派生了这些实体,以支持数据绑定 因此,我所做的是注册一些DependencyProperties并将绑定设置到现有的一个ViewModel,这在我看来是合乎逻辑的 现在,这些自定义类的DependencyProperties显示了一些奇怪的行为
- 我在XAML中定义了一些GUI元素,并将它们与适当的视图模型绑定在一起。到目前为止还不错
- 我还将一些自定义元素(几何形状)放置在画布中(通过用户控件将画布放置在主窗口中)。我从FrameworkElement派生了这些实体,以支持数据绑定
class ProfileV:FrameworkElement,IGraphicalElement
{
公共整数选择选项卡
{
获取{return(int)GetValue(SelectedTabProperty);}
set{SetValue(SelectedTabProperty,value);}
}
公共静态只读从属属性SelectedTabProperty=
从属属性寄存器(“SelectedTab”、typeof(int)、typeof(ProfileV),
新PropertyMetadata(新PropertyChangedCallback(回调));
公共档案(GeneralExecutionVM、CanvasV CanvasV)
{
DataContext=VM;
BindingOperations.SetBinding(这是SelectedTabProperty,新绑定(“SelectedTab”);
}
公共静态无效回调(DependencyObject d、DependencyPropertyChangedEventArgs e)
{
}
}
这跟这个有关系
公共类GeneralExecutionVM:ObservableObject
{
专用int_选择的选项卡;
公共整数选择选项卡
{
获取{return\u SelectedTab;}
设置
{
if(_SelectedTab==值)返回;
_SelectedTab=值;
base.RaisePropertyChanged(“SelectedTab”);
}
}
}
(可观察对象,是乔什史密斯的MVVM基金会的基类)
回答好的,我找到了。这里的误解是关于数据上下文
设置它的时间和地点要小心,不要设置显式源对象。我在这里误用了它,造成了一个小的混乱局面。我们能看到一个典型的绑定,当焦点改变时会断裂吗。。是否有一些在焦点更改时执行的自定义代码?请将解决方案作为正确答案发布,并在允许的情况下尽快接受它(或者删除问题,如果您认为它没有多大帮助)。