2

私はEntity Framework(コードファースト)でWPFアプリケーションを作成します.私はこのモデルを持っています

public class Person 
{
   public int Id {get; set;}
   public string Name {get; set;}
   public virtual Country Country {get ;set;}
}

public class Country
{

   public int Id {get; set;}
   public string Name {get; set;}
} 

Person からの情報を DataGrid に表示したい - name person と name country。国名の表示がうまくいきません。いくつかのオプションを試しましたが、これは最新のものですが、郡の名前は表示されません。

 <DataGrid name ="gridPerson" AutoGenerateColumns="False">
                        <DataGrid.Columns>
                            <DataGridTextColumn 
                                                Binding="{Binding Name}"
                                                Header="Person Name" />
                            <DataGridComboBoxColumn 
                                                    Header="CountryName" 
                                                    SelectedItemBinding="{Binding                                                              County}"
                                                    SelectedValueBinding="{Binding                                                              Path=Id}"
                                                    SelectedValuePath="Name" />

                        </DataGrid.Columns>
           </DataGrid>

コードビハインド

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        personContext = new PersonContext();
        personContext.Persons.Load();
        personContext.Counties.Load();
        gridPerson.ItemSource = personContext.Persons.local; 
    }

    public class PersonContext : DbContext
    {

       public DbSet<Person> Persons { get; set; } 
       public DbSet<Country> Countries { get; set; }
    }     

モデルから国の名前を DataGridComboBoxColumn に表示するにはどうすればよいですか?

4

2 に答える 2

1

DisplayMemberPathComboBoxに対して指定する必要があります。

<DataGrid name ="gridPerson" AutoGenerateColumns="False">
     <DataGrid.Columns>
         <DataGridTextColumn Binding="{Binding Name}" Header="Person Name" />
         <DataGridComboBoxColumn Header="CountryName" SelectedItemBinding="{Binding County}" SelectedValueBinding="{Binding Path=Id}" SelectedValuePath="Name" DisplayMemberPath="Name" />
     </DataGrid.Columns>
</DataGrid
于 2013-07-30T07:59:57.910 に答える
0

タイプミスがあります:

SelectedItemBinding="{Binding County}"

次のようにする必要があります。

SelectedItemBinding="{Binding Country}"

[出力] ウィンドウでバインド エラーに注意してください。

于 2013-07-30T10:03:37.273 に答える