在 XAML 中指定 DataContext,并将其用于下一个属性中的绑定

本文关键字:用于 下一个 绑定 属性 XAML DataContext | 更新日期: 2023-09-27 17:56:33

请考虑以下代码:

<MyControl DataContext="{Binding DataObject}" Text="{Binding DisplayText}"/>

据我所知,XAML 属性是按声明顺序分配的。但是,在XML方面,依赖于它是一个糟糕的设计。我想我可以将其重写为如下所示:

<Grid DataContext="{Binding DataObject}">
    <MyControl Text="{Binding DisplayText}"/>
</Grid>

但是,仅仅为语义放置网格对我来说似乎是错误的。

你觉得怎么样?

谢谢!
维塔利

在 XAML 中指定 DataContext,并将其用于下一个属性中的绑定

我对你的问题有点困惑。设置这些属性的顺序并没有真正的区别。当 text 属性设置为绑定时,它所做的只是创建一个绑定到 Text 属性并具有"DisplayText"路径的绑定。只要在计算绑定时(稍后发生)设置 DataContext,就可以了。

无论如何都不

建议使用网格,因为它的效果性能,如果你没有chiose(没有父级来放置上下文),请使用边框