簡體   English   中英

WPF ItemsControl 以編程方式獲取 XAML 元素?

[英]WPF ItemsControl get the XAML elements programmatically?

我有一個 ItemsControl 填充了一個 ModelView 和這個 XAML 標記:

<ItemsControl.ItemTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal" Margin="0, 0, 0, 5">
            <TextBlock Text="{Binding Value}" Margin="5, 2, 0, 0" />
        </StackPanel>
    </DataTemplate>
</ItemsControl.ItemTemplate>

我想以編程方式獲取 TextBlock 元素,以便在驗證數據后更改它的樣式,我該怎么做?

將名稱添加到項目控件,例如:

<StackPanel x:Name="MyStack" Orientation="Horizontal" Margin="0, 0, 0, 5">
    <TextBlock Text="{Binding Value}" Margin="5, 2, 0, 0" />
</StackPanel>

在您的 CustomControl 中添加 StackPanel 公共屬性,例如:

public StackPanel ItemsControl {get;set;}

並將自定義控件的 OnApplyTemplate 覆蓋為:

protected override void OnApplyTemplate()
{
    ItemsControl = GetTemplateChild("MyStack") as StackPanel;
}

您將能夠訪問堆棧面板及其子項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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