外部関係のあるセルにはいくつかのComboBoxを含むWPF DataGridがありますが、これは何百ものComboBoxes時間がかかりすぎる時間がかかる。私たちがやりたいことは、ComboBoxがロードされた時点でクリックされるまでラベルをロードすることです.TextBoxで簡単に行うことができます。DataViewを使用したWPF DataGridでは、クリックするまでComboBoxをラベルとして表示したい
問題は、Googleのコンボボックスが機能し、複数の表示値({Car、Dog、Cat}など)から選択することで列の外部キー値を変更できることです。しかし、ユーザーがラベルをクリックする前に、ラベルには外部キー値自体が表示されます(例:{1、2、3})。
私たちは何ができるでしょうか?どのような助けを最も感謝!
<DataGridTemplateColumn Header="Column Name" SortMemberPath="Column Name">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Label Content="{Binding Path=DataViewBehindColumnName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox
DataContext="{DynamicResource ResourceKey=ViewModel}"
ItemsSource="{Binding Path=ReferenceTableName,
Converter={StaticResource dataViewToListConverter}}"
DisplayMemberPath="ReferenceTableDisplayNamesColumn"
SelectedValuePath="ReferenceTablePrimaryKeyColumn"
SelectedValue="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGridRow}},
Path=Item[DataViewBehindColumnName]}"
/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
敬具、 ふぐ
これを行う方法はありますか?したがって、私たちは1つの外部関係ごとに実装する必要はありませんか?テーブルごとに15個の外部キーがあるとしましょう...アプリケーションで40個のテーブルを編集できるようにしたい - メンテナンスの悪夢? – Fugu
@ Fugu:私はこの質問に答えるのに十分な情報がありません。私は、いくつかのORラッパーがあなたのためにそのようなことをすることができると思います。私の場合は、自己作成ツールを使用してそのようなビューモデルを作成します。あなたがあなたのORマッパーの文脈で質問を投稿するならば、あなたはこれに対する答えを得るでしょう。データベースや他のソースに直接アクセスしてアクセスするのではなく、抽象レベルで解決を行うヘルパークラスについて考えてみてください。 – HCL
多くのありがとう。私たちはオブジェクト・リレーショナルをやっていません。データ提出の要件によっては、DataSetsが後ろにあり、DataViewがコントロールをバインドする必要があります。 DataViewフィルターを変更するコマンド。 DataViewの代わりにリストが必要なコントロールのコンバーター。 – Fugu