[英]WPF UI doesn't update textblock in controltemplate
我在下面為WPF制作了示例XAML和C#:
XAML:
<Button Name="btn">
<Button.Template>
<ControlTemplate>
<Grid>
<TextBlock Name="textblock1" Text="sampletext1" />
<Grid>
<ControlTemplate>
</Button.Template>
</Button>
C# :
Grid grid = btn.Template.LoadContent() as Grid;
var textblock = grid.FindName("textblock1") as TextBlock;
textblock.Text = "sampletext2";
我能夠在后面的代碼中檢索和更改文本塊文本,但似乎UI不會更新它。 我可以知道如何解決這個問題嗎?
您的代碼將復制文本塊的值,然后為該副本的值分配一個名為“文本”的屬性。 您實際上從未更改按鈕內的文本。 您的文本塊稱為textblock1,它是從textblock1初始化的,但是一旦完成,它們就不會鏈接在一起。
自從我使用WPF已經有一段時間了,但是您需要使用類似以下的命令將文本值重新分配給按鈕:
textblock1.Text = textblock;
甚至更簡單:
textblock1.Text = "sampletext2";
在任何事件中更改代碼
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.Loaded += MainWindow_Loaded;
}
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
TextBlock textBlockInTemplate = (TextBlock)btn.Template.FindName("textblock1", btn);
textBlockInTemplate.Text = "SampleText2";
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.