如何访问按钮XAML C#UWP中的命名TextBlock



我更改了UWP应用程序,使其具有响应UI。从那以后,我有一个问题,把文本放在一个按钮。这是XAML:

<Page
x:Class="Stock_Manager_Windows.IncomeOrder3"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Stock_Manager_Windows"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="#FFBBBBBB">
<Grid.RowDefinitions>
...
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
...
</Grid.ColumnDefinitions>
...
<Button x:Name="Envoyer" Content="Envoyer" HorizontalAlignment="Stretch" Margin="2,2,0,2" VerticalAlignment="Stretch" Grid.Column="4" Grid.ColumnSpan="2" Grid.Row="4" Background="#249C23" Foreground="White" FontWeight="Bold" Click="buttonSendSelectedItems_Click">
<Button.ContentTemplate>
<DataTemplate x:Name="EnvoyerDataTemplate" >
<Viewbox>
<TextBlock x:Name="EnvoyerTxt" Text="Envoyer"/>
</Viewbox>
</DataTemplate>
</Button.ContentTemplate>
</Button>
...
</Grid>
</Page>

在修改之前,我曾用这个C#代码更新按钮中的文本:

Envoyer.Content = "Envoyer (" + count + ")";

现在不可能了。。。然后一开始我尝试了:

envoyerTxt.Text = "Envoyer (" + count + ")";

我试图使用以下链接解释的解决方案,但代码似乎已经过时,没有关联,或者我太愚蠢了,无法理解。

WPF如何从DataTemplate 访问控制

访问c#中的内容呈现器中的控件

如何访问XAML DataTemplate中的控件?

如何从代码隐藏访问数据模板中的控件?

FindVisualChild参考问题

有人能给我解释解决方案吗?也许问题不在c#代码中,而是在XAML中,我没有任何线索。

ContentTemplate内部,将TextBlock更改为此。

<TextBlock x:Name="EnvoyerTxt" Text="{Binding}" />  

这意味着现在,无论设置了什么内容(Text(,它都将绑定到您的模板TextBlock文本属性,并且它将相应地更改。

同样要明确的是,您不能在模板中通过元素的名称来访问它。因为模板是在运行时加载的,而不是在编译时加载的。这就是为什么只有内部模板绑定才能用于分配数据的原因。

最新更新