C# WPF ItemsControl是否以编程方式获取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,其中填充了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元素,以便在验证数据后可以更改其样式,如何执行此操作?

将名称添加到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的忠实粉丝问题有点不同,这是它目前的做法,但在用户单击
保存
后,我想将按钮/框重置为默认状态(不可编辑),但验证失败的字段除外,如果它是块(并更改样式),将转到框。