0
<ToggleButton Command="{Binding Path=Command}" Content="{Binding Path=DisplayName}" Template="{Utilities:BindableResource {Binding Path=TemplateResource}}">
<ToggleButton.Style>
<Style TargetType="ToggleButton">
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Template" Value="{Utilities:BindableResource {Binding Path=SelectedTemplateResource}}" />
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
第一个可绑定资源对togglebutton的模板属性上的“TemplateResource”起作用,但“SelectedTemplateResource”在tiggers设置器中不起作用。此代码位于资源词典中,实际资源位于主题资源词典中。Resource 1 works,2 does not
我得到一个错误,指出对于setter值,xamlparseexception的key为null。我一直在坚持这几个小时,但不知道为什么它不起作用...如果我拿出样式并替换第一个绑定与第二个资源它显示正确,但是样式中的绑定将不起作用。
有没有人知道为什么?
编辑 我刚试过这个,但没有运气。
<ToggleButton Command="{Binding Path=Command}" Content="{Binding Path=DisplayName}">
<ToggleButton.Style>
<Style TargetType="ToggleButton">
<Style.Triggers>
<Trigger Property="IsChecked" Value="False">
<Setter Property="Template" Value="{Utilities:BindableResource {Binding Path=TemplateResource}}" />
</Trigger>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Template" Value="{Utilities:BindableResource {Binding Path=SelectedTemplateResource}}" />
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
你会想看看[依赖属性值precentdence](http://msdn.microsoft.com/en-us/library/ms743230.aspx),因为即使没有错误,这也不起作用。 – 2012-04-11 19:43:59
反正有这个吗?我有一个围绕命令和工作区设置的mvvm模式,命令基本上是一个具有指定主题资源的按钮......它可以工作......它只是获取点击按钮时选定状态资源更新的影响。 – bl4kh4k 2012-04-11 19:45:36
要修正优先覆盖,只需将样式中的本地值('Template =“...”')移动到'Setter'。 – 2012-04-11 19:48:03