找不到转换器的资源



我正在尝试切换窗口的可见性。 我已经将一个布尔对象绑定到我的 ViewModel,并有一个转换器来处理可见性切换。 该项目将运行,但立即爆炸,但"找不到名为'VisibilityConverter'的资源"除外。

我的Windows.Resources xml中的其他转换器可以找到并很好地使用。 为什么找不到这个? 知道我做错了什么吗?

Window x:Class="MyProject.Views.ControlPanel"
Height="650" Width="805" MinWidth="805"
Visibility="{Binding ControlPanelWindowBo.IsWindowVisible, Converter={StaticResource VisibilityConverter}}">
<Window.Resources>
<converters:BoolToIconConverter x:Key="BoolToIconConverter" />
<converters:BoolHomeTeamPossessionConverter x:Key="BoolHomeTeamPossessionConverter" />
<converters:BoolVisitorTeamPossessionConverter x:Key="BoolVisitorTeamPossessionConverter" />
<converters:VisibilityConverter x:Key="VisibilityConverter" />
</Window.Resources>

这是因为定义VisibilityConverter的级别(窗口级别(是深入的。

您应该在app.xaml中定义它,并将其定义为应用程序资源:

<Application x:Class="stuff.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<converters:VisibilityConverter x:Key="VisibilityConverter" />
...and others.
</ResourceDictionary>
</Application.Resources>
</Application>

最新更新