DataGridComboBoxColumn
(DataGridTemplateColumn
とComboBox
)は、ポートのリストを作成し、各行をデータベースに既に格納されているポートにデフォルト設定しようとしています。 DataGridTemplateColumn
にComboBox
が入っていますが、すでにデータベースに格納されているものを選択することはできません。GridのDataGridComboBoxをSelectedItemに移植する
私はEntity Frameworkを使用していますが、私は2つのテーブル 'Route'と 'Port'を持っています。 'Route'には 'Destination Port'と 'Arrival Port'の2つの外部キーがあります。
私は2つのObervableCollectionを持っています.1つはポートのリスト用で、もう1つはルートリスト用です。ルートコレクションには、それぞれ目的地/到着のための「Port1」と「Port2」があります。私はそれだけで使用可能なポートを一覧表示し、それ以外の場合は空白になっていると述べたよう
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding DataContext.PortCollection, RelativeSource={RelativeSource AncestorType={x:Type Window}}}"
DisplayMemberPath="PortName"
SelectedItem="{Binding DataContext.RouteCollection, RelativeSource={RelativeSource AncestorType={x:Type Window}}}"
SelectedValue="{Binding DataContext.Port1, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}}"
SelectedValuePath="PortId">
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
しかし:
これは私が現在持っているものです。申し訳ありませんが私は自分自身をあまりにも明確にしていない場合、私は一般的に関節接合にはあまりよくありません。
は、ここに私のコレクションです:
public ObservableCollection<Port> PortCollection { get; set; }
//List of Routes
private ObservableCollection<Route> _RouteCollection;
public ObservableCollection<Route> RouteCollection
{
get { return _RouteCollection; }
set
{
_RouteCollection = value;
Set(() => RouteCollection, ref _RouteCollection, value);
}
}
行うにはかなり一般的なものでなければならない。このように間違って明らかに何かが、はっきりとありますが、私はこれだけで、これをはるかに得る上で4時間狂ってきました! :(
感謝