簡體   English   中英

我如何在View模型中綁定StaticResource密鑰

[英]How i can bind StaticResource key in View model

我為一個畫布有不同的ControlTemplates:

<Application.Resources>
    <ControlTemplate x:Key="Control1" />
    <ControlTemplate x:Key="Control2" />
</Application.Resources>

我想通過我的viewmodel屬性更改其中之一:

private string _template = "Control1";
public string Template
        {
            get
            {
                return _template;
            }
            set
            {
                if (!string.IsNullOrEmpty(value))
                {
                    _template = value;
                    OnPropertyChanged("Template");
                }
            }
        }

最后在我看來使用它:

<UserControl Template="{StaticResource {Binding Template}}" />

但這不起作用,我該如何解決? 謝謝

您可以嘗試使用DataTriggers

<UserControl>
<UserControl.Style>
<Style TargetType="{x:Type UserControl}">
<Setter Property="ControlTemplate" value="{StaticResource Control1}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Template}" Value ="Control1">
<Setter Property="ControlTemplate" value="{StaticResource Control1}"/>
</DataTrigger>
<DataTrigger Binding="{Binding Template}" Value ="Control2">
<Setter Property="ControlTemplate" value="{StaticResource Control2}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</UserControl.Style>
</UserControl>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM