gpt4 book ai didi

windows-8 - 数据绑定(bind)到 Page.BottomAppBar 中的 ElementName

转载 作者:行者123 更新时间:2023-12-01 06:38:49 25 4
gpt4 key购买 nike

我正在尝试将 BottomAppBar 内的元素绑定(bind)到它之外的元素。

下面是一个用于说明的示例 XAML:

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<TextBox x:Name="text" MinWidth="200" MinHeight="40" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Grid>
<Page.BottomAppBar>
<AppBar>
<StackPanel Orientation="Horizontal">
<Button Content="{Binding Text, ElementName=text}" Click="Button_Click_1"></Button>
<Button Content="{Binding Text, ElementName=text2}" Click="Button_Click_1"></Button>
<TextBox x:Name="text2" MinWidth="200" MinHeight="40" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</StackPanel>
</AppBar>
</Page.BottomAppBar>

第一个按钮永远不会更新(它绑定(bind)到的文本框在 BottomAppBar 之外),但是,第二个按钮会按照您的预期更新。如何使页面对 BottomAppBar 可见?

最佳答案

我没有胆量说它是错误,尽管我相信它是这样,但我解决了这个问题,这让我像一个星期一样:

第一:这不仅适用于 BottomAppBar , TopAppBar遇到同样的问题。

第二:问题是 ElementName绑定(bind)仅在您的源元素是位于其中一个 AppBar 中的元素时才有效,这意味着:

  • 来自 BottomAppBar (目标)到TopAppBar (来源):作品
  • 来自 BottomAppBar (目标)到BottomAppBar (来源):作品
  • 来自 TopAppBar (目标)到BottomAppBar (来源):作品
  • 来自 TopAppBar (目标)到TopAppBar (来源):作品
  • 来自 TopAppBar (目标)到 two AppBars 之外的东西(来源):不起作用
  • 来自 BottomAppBar (目标)到 two AppBars 之外的东西(来源):不起作用

  • 示例:
    <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
    <TextBox x:Name="text" MinWidth="200" MinHeight="40" VerticalAlignment="Center" HorizontalAlignment="Center"/>
    </Grid>
    <Page.TopAppBar>
    <AppBar>
    <StackPanel Orientation="Horizontal">
    <Button Content="{Binding Text, ElementName=text}" Click="Button_Click_1"></Button>
    <Button Content="{Binding Text, ElementName=text2}" Click="Button_Click_1"></Button>
    <TextBox x:Name="text3" MinWidth="200" MinHeight="40" VerticalAlignment="Center" HorizontalAlignment="Center"/>
    <TextBox x:Name="text3" MinWidth="200" MinHeight="40" VerticalAlignment="Center" HorizontalAlignment="Center"/>

    </StackPanel>
    </AppBar>
    </Page.TopAppBar>
    <Page.BottomAppBar>
    <AppBar>
    <StackPanel Orientation="Horizontal">
    <Button Content="{Binding Text, ElementName=text}" Click="Button_Click_1"></Button>
    <Button Content="{Binding Text, ElementName=text3}" Click="Button_Click_1"></Button>
    <TextBox x:Name="text2" MinWidth="200" MinHeight="40" VerticalAlignment="Center" HorizontalAlignment="Center"/>
    <TextBox x:Name="text3" MinWidth="200" MinHeight="40" VerticalAlignment="Center" HorizontalAlignment="Center"/>

    </StackPanel>
    </AppBar>
    </Page.BottomAppBar>

    两个 AppBars 中第一个按钮的内容不会显示任何内容,但是两个 AppBars 的第二个按钮将正确显示。

    我发现 AppBar 从外部看到的唯一内容是 DataContextPage元素,因此考虑在 DataContext 中使用支持属性来处理所有这些,这对我来说很好。

    关于windows-8 - 数据绑定(bind)到 Page.BottomAppBar 中的 ElementName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12772907/

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