gpt4 book ai didi

c# - 绑定(bind)到控件模板

转载 作者:太空宇宙 更新时间:2023-11-03 12:37:54 25 4
gpt4 key购买 nike

我需要将按钮绑定(bind)到控件模板。 XAML 看起来像这样:

Button Template="{Binding Status, Converter={StaticResource StatustoTemplate}}"

转换器 (StatustoTemplate) 在状态(它是一个整数,但很高兴它是一个字符串)发生变化时运行良好:

public class StatustoTemplate : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)

{
if (value==1)
{
return ControlTemplateName1;
}
if (value==2)
{
return ControlTemplateName2;
}
}
}

现在,我可以用什么格式发回 ControlTemplate1ControlTemplate2?让我们假设 ControlTemplate1ControlTemplate2 是 XAML 中定义的有效控件模板。现在我知道它需要返回一个 ControlTemplate - 但如何设置它?

最佳答案

我的首选方法是使用带有 DataTriggers 的 Style 来切换模板,而无需转换器

<Style TargetType="Button" x:Key="StatusButton"> <!--set BasedOn if there is a base Style-->
<Style.Triggers>
<DataTrigger Binding="{Binding Status}" Value="1">
<Setter Property="Template" Value="{StaticResource ControlTemplateName1}"/>
</DataTrigger>

<DataTrigger Binding="{Binding Status}" Value="2">
<Setter Property="Template" Value="{StaticResource ControlTemplateName2}"/>
</DataTrigger>
</Style.Triggers>
</Style>

然后应用这个样式:

<Button Style="{StaticResource StatusButton}"/>

关于c# - 绑定(bind)到控件模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40210604/

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