3

私はwpfとDataBindingが初めてです。ちょっとしたアプリでwpfを試してみました。そして今、コレクションビューソースをコンボボックスと組み合わせて使用​​ する際に問題が発生しました

Datagrid で、テーブル「OrderDetails」の内容を表示します。問題は、フィールド「PartId」を Combox として表示したいということです。コンボボックスにはすべての「パーツ」が含まれている必要があり、PartId ではなく「名前」が表示されます

(申し訳ありませんが、DB レイアウトの写真をアップロードできません)

テーブルOrderDetails : Id ,OrderId,PartId,Count

テーブルパーツ: Id、名前、説明、価格

<DataGrid Margin="80,0,0,0" Background="Transparent" HeadersVisibility="Column" 
  ItemsSource="{Binding Source={StaticResource projectsOrderdetailsViewSource}}">
    <DataGrid.Columns>
        <DataGridTemplateColumn Header="Fahrzeug" Width="SizeToHeader">
            <DataGridTemplateColumn.CellTemplate>
                 <DataTemplate>
                     <ComboBox  DisplayMemberPath="Name"
                       ItemsSource="{Binding Source={StaticResource partsViewSource}}" 
                       SelectedValue="{Binding Path=ID}"
                       SelectedValuePath="{Binding Path=PartId}"/>
                 </DataTemplate>
             </DataGridTemplateColumn.CellTemplate>
         </DataGridTemplateColumn>
....

データグリッドとそれを含むコンボボックスが表示されますが、

  1. 値が正しく表示されません。
  2. コンボボックスから何かを選択すると、データグリッドのすべての項目が選択された値を取得します。

コンボボックスを正しく設定するのを手伝ってもらえますか

4

1 に答える 1

0

単一の partsViewSource にバインドしている可能性があります。

partsViewSource は projectOrderdetailsViewSource のプロパティである必要があるため、各行には独自の partsViewSource があります

リストにはパブリック プロパティが必要なので、各行には独自のリストがあります。

class order
{
    public Int ID {get; private set;}
    public List<string> Parts { get; set }
}
于 2012-11-05T16:32:41.170 に答える