私はWPFが初めてです。私はStackPanelをStackPanelのスタイルで設定されたItemSourceを持つ複数のコンボボックスをSQL Serverのビュー(CaSupplierColumns
)から持っています(Visual StudioはデータソースパネルからordersDataSet
をドラッグしたリンクを自動的に作成しました)。これは問題ありません。CompositeCollection内の複数のDisplayMemberPaths?
コンボボックス(Manufacturer
)のいずれかにカスタム値を追加するためにCompositeCollection
を使用すると問題が発生し、すべての値が正しく表示され、追加された項目も空白になります。追加された項目は、コンボボックスに空白のオプションとして表示されます。私が発見
犯人(データベースビューで列ヘッダーの名前です)Columns
にDisplayMemberPath
セットである私は、このコンボボックスにnullにDisplayMemberPath
を設定すると、追加項目が正しく実際に表示されますが、中に他の値コンボボックスはSystem.Data.DataRowView
と表示されます。
2つの異なるDisplayMemberPath
を1つのCompositeCollectionに含めるにはどうすればよいですか?それともやり方が違うのでしょうか?ここで
は(キー部分を残すように取り除か)私の現在のXAMLです:
<Window.Resources>
<local:OrdersDataSet x:Key="ordersDataSet" />
<CollectionViewSource x:Key="caSupplierColumnsViewSource" Source="{Binding CaSupplierColumns, Source={StaticResource ordersDataSet}}" />
</Window.Resources>
<StackPanel Name="MapFields" DataContext="{StaticResource caSupplierColumnsViewSource}">
<StackPanel.Resources>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource" Value="{Binding}" />
<Setter Property="DisplayMemberPath" Value="Columns" />
<Setter Property="SelectedValuePath" Value="Columns" />
<Setter Property="IsSynchronizedWithCurrentItem" Value="False" />
</Style>
</StackPanel.Resources>
...
<ComboBox Name="MfrPartNo" />
...
<ComboBox Name="Manufacturer">
<ComboBox.ItemsSource>
<CompositeCollection>
<CollectionContainer Collection="{Binding Source={StaticResource ResourceKey=caSupplierColumnsViewSource}}" />
<ListBoxItem>Another option</ListBoxItem>
</CompositeCollection>
</ComboBox.ItemsSource>
</ComboBox>
</StackPanel>
項目のリストの前に「Please choose ...」のような固定テキストを表示しますか? – AnjumSKhan