【发布时间】:2015-07-16 13:32:53
【问题描述】:
如果我正在创建一个新控件并且我需要访问它之外的东西,那么修改数据上下文是一个好习惯还是应该像这样使用相关数据绑定:
{Binding Path=PathToProperty,
RelativeSource={RelativeSource AncestorType={x:Type typeOfAncestor}}}
我在修改 datacontext 时看到的问题是,由于 datacontext 修改发生在 C# 而不是 xaml 中,因此知道此控件可以在 xaml 中绑定到什么变得令人困惑。
编辑
让我重新提出这个问题,我应该或不应该修改控件的数据上下文是否有任何技术原因?
【问题讨论】:
-
您能否详细说明“修改数据上下文”的含义?
-
澄清一下,您是在创建
UserControl还是自定义Control? -
@Mike,将我的控件的数据上下文设置为应用程序的数据上下文之外的其他内容。
-
@Kevin,有什么不同吗?我目前正在测试 UserControls,但也可能是。
-
@MaximeTremblay-Savard 就个人而言,我会说是的,它确实有所作为。我个人认为自定义
Control永远不应该依赖于其他事物的行为,并且您永远不应该从Control中更改DataContext。我可以使用UserControl更灵活一点,但我不推荐这种行为。
标签: c# wpf xaml datacontext