我似乎找不到正确的语法来允许将附加属性用作组合框的 DisplayMemberPath。
该属性是 SelectorSwitchedControl.NameForSelector
它位于命名空间“LocalTest”中,该命名空间映射到 XAML 前缀“local”。
这是代码...
<UserControl x:Class="Playground.SelectorSwitchedControlTest.SelectorSwitchedControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:glc="clr-namespace:Playground.CommonControls"
xmlns:local="clr-namespace:Playground.SelectorSwitchedControlTest"
Background="Transparent">
<Border x:Name="MainBorder"
BorderBrush="Gray" BorderThickness="1">
<DockPanel>
<glc:FixedToolBar DockPanel.Dock="Top">
<ComboBox x:Name="MainSelector"
ItemsSource="{Binding Children, ElementName=MainPanel}"
DisplayMemberPath="(local:SelectorSwitchedControl.NameForSelector)" />
</glc:FixedToolBar>
<local:SelectorSwitchedControlPanel x:Name="MainPanel" />
</DockPanel>
</Border>
</UserControl>
...由于某种原因,这给了我一个例外'前缀'本地'不映射到命名空间。' 我不知道为什么它说好像我删除了'DisplayMemberPath'行,''标签呈现就像它应该证明命名空间被映射一样。
我也尝试了以下所有...
- DisplayMemberPath="local:SelectorSwitchedControl.NameForSelector"
- DisplayMemberPath="(local:SelectorSwitchedControl.NameForSelector)"
- DisplayMemberPath="SelectorSwitchedControl.NameForSelector"
- DisplayMemberPath="(SelectorSwitchedControl.NameForSelector)"
- DisplayMemberPath="LocalTest.SelectorSwitchedControl.NameForSelector"
- DisplayMemberPath="(LocalTest.SelectorSwitchedControl.NameForSelector)"
我知道这只是我头脑不灵光的那些日子之一,我错过了一些简单的事情,但这让我发疯了!那么正确的语法是什么?