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