簡體   English   中英

WPF UI不會更新ControlTemplate中的文本塊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM