gpt4 book ai didi

c# - 为什么我需要绑定(bind)到代码隐藏而不是 View 模型中的依赖属性?

转载 作者:行者123 更新时间:2023-11-30 13:36:03 24 4
gpt4 key购买 nike

我正在编写一个用户控件。 Xaml 和代码隐藏。为了绑定(bind)到代码中的属性,该属性需要是一个依赖属性。明白了。

为什么我可以绑定(bind)到在 View 模型中实现 INotifyPropertyChanged 的 poco,该 View 模型被设置为 View 的数据上下文,但不在后面的代码中?

xaml:

XAxis="{Binding ElementName=TimeSeriesChartControl, Path=XAxis}" 

代码隐藏:

public IAxis XAxis
{
get { return (IAxis)GetValue(XAxisProperty); }
set { SetValue(XAxisProperty, value); }
}

public static readonly DependencyProperty XAxisProperty =
DependencyProperty.Register("XAxis", typeof(IAxis), typeof(TimeSeriesChart), new PropertyMetadata(default(IAxis)));

此属性必须是依赖属性。如果我在这里实现一个 clr 属性,绑定(bind)就会失败。

为什么我可以在 View 模型类中而不是在后面的代码中实现 clr 属性?

最佳答案

因为依赖属性支持绑定(bind)到其他依赖属性或实现 INotifyPropertyChanged 的​​事物。

View 模型应该尽量保持平台不可知,并且不了解 View 的任何信息,通过在 View 模型中使用依赖属性,您将其绑定(bind)为仅受 WPF 支持,并且您正在将有关 View 的信息“泄漏”回 View 模型..

关于c# - 为什么我需要绑定(bind)到代码隐藏而不是 View 模型中的依赖属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40869175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com