我想在页面的资源中添加一个类的特定实例,然后将该类用作转换器,所以在我的页面构造函数中我放了:
this.Resources.Add("converterASD", new ASDConverter());
然后像这样绑定它:
<ListBox ItemsSource="{Binding Converter={StaticResource converterASD}}"/>
但我一直得到这个例外:
在'System.Windows.Markup.StaticResourceHolder'上提供一个值 异常。
我对WPF有点新意,任何建议都会受到赞赏。
答案 0 :(得分:3)
我们可以使用异常中的更多信息。
两个建议:
答案 1 :(得分:0)
您可以在页面的资源部分声明要使用的Converter,如下例所示。 (我建议您在XAML中声明转换器而不是代码隐藏)
示例:强>
<UserControl x:Class="Views.ConverterExample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" mc:Ignorable="d" d:DesignHeight="300"
d:DesignWidth="300">
<UserControl.Resources>
<BooleanToVisibilityConverter x:Key="BoolToVisibilityConverter" />
</UserControl.Resources>
<Grid>
<CheckBox x:Name="VisibilityController" IsThreeState="False" />
<ListBox
Visibility="{Binding ElementName=VisibilityController, Path=IsChecked,Converter={StaticResource BoolToVisibilityConverter}}"
Height="100" Width="100" BorderBrush="Red" BorderThickness="1" />
</Grid>
</UserControl>