2

私は3つのテーブルを持っています。従業員、ClientEmp、およびクライアント。

ClientEmp にはForeignKeyEmployee (EmployeeID) と Client(ClientID) の両方があります。

EFこれまでのところ、クライアントに基づいて( を使用して) データベースに ClientEmp への変更を保存できますselected。ただし、保存するデータを一致させるには、EmployeeIDForeignKeyを手動で入力する必要があります。textbox

明らかに、ユーザーが EmployeeID FK がどちらに入力されているかを知らない場合、これはあまりユーザーフレンドリーではありませんtextbox

したがって、 Employee テーブルlistの を使用して Employee Firstnameを表示しcombo box 、それをデータベースに保存する方法はありますか?

これを試してみましたが、うまくいかないようです。

<ComboBox Grid.Column="1" Grid.Row="1" Name="cbEmployeeName" 
          ItemsSource="{Binding Source={StaticResource Employee}}" 
          DisplayMemberPath="FirstName" 
          SelectedValuePath="EmployeeID">
</ComboBox>

また、このリンクこのリンクを使用して助けようとしましたが、役に立ちませんでした。私は何を間違っていますか?

どんな助けでも大歓迎です:)。

4

1 に答える 1

2

最終的に、WPF チャット ルームMaverikの助けを借りて、なんとか解決することができました。

xaml 内で次のように定義しました。

<ResourceDictionary>
        <ObjectDataProvider x:Key="Employee"
                            ObjectType="{x:Type vm:ClientBookKeepingViewModel}"
                            MethodName="GetEmp">
        </ObjectDataProvider>
</ResourceDictionary>

<ComboBox Grid.Column="1" Grid.Row="1" Name="cbEmployeeName" 
             ItemsSource="{Binding Source={StaticResource Employee}}" 
             DisplayMemberPath="FirstName" 
             SelectedValue="{Binding Path=EmployeeID}"
             SelectedValuePath="EmployeeID"
/>

私のViewModel内で、このメソッドを作成して従業員のリストを取得しました。

public IEnumerable<DataObjects.Employee> GetEmp() 
{
    return context.Employees;
}
于 2013-05-09T14:21:52.840 に答える