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

本文关键字:属性 命名空间 另一个 绑定 | 更新日期: 2023-09-27 18:34:23

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

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

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

和样式中的绑定:

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

最后在视图模型中,我只有一个自动属性:

public bool AreCategoriesAutoExpanded { get; set; }

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

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

如果我尝试使用动态资源资源,则只能绑定到 dp。这种绑定有什么问题?我错过了什么吗?

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

仅当您的 ViewModel 是具有静态属性的静态类时,此操作才有效,如下所示:

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

您缺少"x:静态"位,它应该可以修复它。