1

UserControl是否可以从自身访问定义的资源?如何?

我正在尝试这样做:

<UserControl xmlns="all defined namespaces here..."
             Visibility="{Binding Show,FallbackValue=Hidden,
                 Converter={StaticResource BooleanToVisibility}}">
    <UserControl.Resources>
        <ResourceDictionary>
            <BooleanToVisibilityConverter x:Key="BooleanToVisibility" />
        </ResourceDictionary>
    </UserControl.Resources>
</UserControl>

,但我收到此错误:

'在 'System.Windows.StaticResourceExtension' 上提供值引发了异常。' 行号“11”和行位置“9”。

4

1 回答 1

3

大概可以改变顺序:

<UserControl.Resources>
    <ResourceDictionary>
        <BooleanToVisibilityConverter x:Key="BooleanToVisibility" />
    </ResourceDictionary>
</UserControl.Resources>
<UserControl.Visibility>
    <Binding Path="Show" FallbackValue="Hidden"
             Converter="{StaticResource BooleanToVisibility}"/>
</UserControl.Visibility>

您也可以将转换器移动到Application.Resources多个地方常用的转换器,然后可以在任何地方引用它。

于 2013-06-01T13:48:21.327 回答