2009-08-27 11 views
0

DataGridViewでリレーションの属性を表示したいとします。私はマッピングを行うと、以下のクラスを持っているSQLにLINQを使用します。DataGridViewでのリレーションの属性を表示

class Computer 
{ 
    public string Name; 
    public User User; 
} 

class User 
{ 
    public string Name; 
} 

私はComputerエンティティの一部の行を表示するためのDataGridViewを使用しても、関連付けられたユーザーの名前を表示するように1列を持つようにしたいですこのコンピュータ。

私はComputerクラスのオブジェクトデータソースを作成しました。私のBindingSourceのDataSourceプロパティをこのデータソースに設定し、DataGridViewをこのBindingSourceにリンクしました。私はDataGridViewに列を追加し、//User.Name//にDataPropertyNameプロパティを設定しましたが、これは機能しません。これを行う良い方法は何ですか?

私は既にComputerから継承し、ユーザーの名前を表す追加の文字列プロパティを持つ追加のクラスを作成することを考えました。私はこの解決法を避けたい。

答えて

2
var computerUsers = from c in mydataContext.Computer 
select new { 
computerName = c.Name, 
userName = c.User.Name 
}; 

myDataGridView.datasource = computerUsers; 
myDataGridView.dataBind(); 

とあなたのDataGridViewコール「コンピュータ名」と「userNameに」

<asp:BoundField DataField="computerName" HeaderText="Computer" /> 
<asp:BoundField DataField="userName" HeaderText="User" /> 
+0

に私はすでに匿名クラスとソリューションについて考えてきましたが、私は可能であればGUIデザインを使用したいです。 –

+0

ok。あなたのDataGridとオブジェクトソースコードを投稿できますか? – krishna

+0

あなたはどんなコードを正確にしたいですか?私はGUIデザイナーを使用してコントロールを配置します。デザイナーが生成するコードを作成しますか? –

関連する問題