gpt4 book ai didi

c# - 从代码中找到一个 ControlTemplate

转载 作者:行者123 更新时间:2023-11-30 22:48:28 24 4
gpt4 key购买 nike

我有一个包含以下代码的 xaml 文件:

<GridViewColumn x:Name="lvCol3"
Header="Quantità"
Width="120">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Control x:Name="host">
<Control.Template>
<ControlTemplate>
<TextBlock Text="{Binding Path=Entity.Quantita}" />
</ControlTemplate>
</Control.Template>
</Control>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsSelected,
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}}"
Value="True">
<Setter TargetName="host" Property="Template">
<Setter.Value>
<ControlTemplate x:Name="myControlTemplate" />
</Setter.Value>
</Setter>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>

我将从代码隐藏中管理 myControlTemplate,以便分配不同的 UI 对象。

我尝试使用 FindResource 但它不起作用。我该怎么做?

最佳答案

可能最简单的方法是将 ControlTemplate 提取到资源中:然后您可以使用 FindResource。

像这样:

<UserControl>
<UserControl.Resources>
<ControlTemplate x:Key="MyControlTemplate">
<TextBlock
Text="{Binding Path=Entity.Quantita}"/>
</ControlTemplate>
</UserControl.Resources>

...

<GridViewColumn
x:Name="lvCol3"
Header="Quantità"
Width="120">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Control x:Name="host" Template="{StaticResouce MyControlTemplate}">
</Control>
</GridViewColumn.CellTemplate>
</GridViewColumn>

...
</UserControl>

然后在您的 UserControl(或任何根元素)的代码中,您可以执行

var resource = FindResource("MyControlTemplate") as ControlTemplate;

关于c# - 从代码中找到一个 ControlTemplate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1637436/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com