C# WPF ItemsControl是否以编程方式获取XAML元素?
我有一个ItemsControl,其中填充了ModelView和这个XAML标记:C# WPF ItemsControl是否以编程方式获取XAML元素?,c#,wpf,xaml,C#,Wpf,Xaml,我有一个ItemsControl,其中填充了ModelView和这个XAML标记: <ItemsControl.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal" Margin="0, 0, 0, 5"> <TextBlock Text="{Binding Value}" Margin="5, 2, 0, 0" />
<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元素,以便在验证数据后可以更改其样式,如何执行此操作?将名称添加到items控件,例如:
<StackPanel x:Name="MyStack" Orientation="Horizontal" Margin="0, 0, 0, 5">
<TextBlock Text="{Binding Value}" Margin="5, 2, 0, 0" />
</StackPanel>
public StackPanel ItemsControl {get;set;}
并将自定义控件的OnApplyTemplate重写为:
protected override void OnApplyTemplate()
{
ItemsControl = GetTemplateChild("MyStack") as StackPanel;
}
您将能够访问stackpanel及其子级。为什么必须以编程方式进行操作?如果我正确理解您的问题,您可以在模板中更改样式。@ChrisW。它不仅仅是样式,我有一个文本块和一个按钮,当用户点击按钮时,我将块切换为一个框,允许他编辑和关闭。我需要“重置”此事件,所以我需要以某种方式将元素放入其中。将块和框放入其中,使非默认的块和框折叠可见,在按钮/切换上的事件触发器上的快速更改属性操作可以将它们调出,这没什么大不了的。虽然我可能有偏见,因为我是xaml的忠实粉丝问题有点不同,这是它目前的做法,但在用户单击
保存
后,我想将按钮/框重置为默认状态(不可编辑),但验证失败的字段除外,如果它是块(并更改样式),将转到框。