绑定到另一个名称空间中的属性?

时间:2016-02-11 17:53:53

标签: c# wpf xaml mvvm

我在主题xaml文件中有一个样式设置器。我试图将Setter的值绑定到视图模型中的bool peoperty。

我在主题中获得了视图模型的命名空间:

 xmlns:propertyGrid="clr-namespace:MY.App.Controls.PropertyGrid;assembly=MY.APP.Controls"

和样式中的绑定:

<Setter Property="IsExpanded" Value="{Binding Source={StaticResource propertyGrid:PropertyGridViewModel}, Path=AreCategoriesAutoExpanded}"/>

最后在viewmodel中我只有一个自动属性:

public bool AreCategoriesAutoExpanded { get; set; }

但是我在运行时遇到异常:

Cannot find resource named 'propertyGrid:PropertyGridViewModel'. Resource names are case sensitive

如果我尝试使用动态资源资源,则表示我只能绑定到dp。这个绑定有什么问题?有什么我想念的吗?

1 个答案:

答案 0 :(得分:1)

仅当您的ViewModel是具有静态属性的静态类时才会起作用,如下所示:

<Setter Property="IsExpanded" Value="{Binding Source={x:Static propertyGrid:PropertyGridViewModel.AreCategoriesAutoExpanded}"/>

你错过了'x:Static'位,应该修复它。