none
x:Bind 的上下文为 Page 或 UserControl,那么意味着这个上下文是传播式的?(详) RRS feed

  • 常规讨论

  • 看一个简单的例子:

    我有 2 个 UserControl,分别为 UC1UC2,其中 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>

    UC1x:Bind 上下文 就是这个 Page 了,要想绑定成功访问,我必须在 Page.xaml.cs 中添加相关这个 上下文

    同理,我 UC1 中嵌套了 UC2,也使用了 x:Bind,我必须在 UC1.xaml.cs 中添加 上下文(即 titleDP);

    继续同理,我 UC2 中使用了 x:Bind,我必须在 UC2.xaml.cs 中也添加 上下文(即 titleDP)。

    但如果我用 Binding 的话就不需要这样了,Binding 绑定某个元素只是一个占位符,运行时会去找上下文的这个元素。

    最后,不知我说的对不对,希望大家讨论讨论。(如果真是这样,那 x:Bind 好繁琐==)

    2015年10月31日 6:43