看一个简单的例子:
我有 2 个 UserControl,分别为 UC1、UC2,其中
UC1 中嵌套了 UC2。现在,我在
Page 中使用了 UC1。
...Page
<Page>
<Grid>
<ctl:UC1 titleDP="{x:Bind ...}">
</Grid>
</Page>
...UC1
<UserContrel>
<Grid>
<.../>
<ctl:UC2 titleDP="{x:Bind ...}">
<.../>
</Grid>
</UserControl>
...UC2
<UserContrel>
<Grid>
<.../>
<TextBlock titleDP="{x:Bind ...}">
<.../>
</Grid>
</UserControl>
那 UC1 的 x:Bind 上下文 就是这个
Page 了,要想绑定成功访问,我必须在 Page.xaml.cs 中添加相关这个
上下文;
同理,我 UC1 中嵌套了 UC2,也使用了
x:Bind,我必须在 UC1.xaml.cs 中添加 上下文(即
titleDP);
继续同理,我 UC2 中使用了 x:Bind,我必须在
UC2.xaml.cs 中也添加 上下文(即 titleDP)。
但如果我用 Binding 的话就不需要这样了,Binding 绑定某个元素只是一个占位符,运行时会去找上下文的这个元素。
最后,不知我说的对不对,希望大家讨论讨论。(如果真是这样,那 x:Bind 好繁琐==)