添付プロパティを ComboBox の DisplayMemberPath として使用できるようにするための正しい構文が見つからないようです。
プロパティは SelectorSwitchedControl.NameForSelector
です。これは、XAML プレフィックス 'local' にマップされている名前空間 'LocalTest' にあります。
これがコードです...
<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)"
頭が働かず、単純なものが欠けている日々の 1 つであることはわかっていますが、気が狂ってしまいます! では、適切な構文は何ですか?