2012-04-09 9 views
0

私は鉱山のようなケースを見つけるのに時間をかけましたが、何も役に立たないものは見つかりませんでした。WPFのデータグリッドに特定のパラメータを追加

私の問題は、私はAssignmentnamesと2つの列と代入の作成者が必要なデータグリッドがあることです。 Iveは、あなたが下で見ることができるように、彼らのヘッダーと共に列車を作成しました。

<DataGrid AutoGenerateColumns="False" Height="257" HorizontalAlignment="Left" 
    Margin="12,12,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="479"> 

     <DataGrid.Columns> 
      <DataGridTextColumn Header="Assignments" /> 
      <DataGridTextColumn Header="Creator" /> 
     </DataGrid.Columns> 
    </DataGrid> 

さらに、私はこのコードをテストとして並べてみました。最終的な解決策として、私はデータベースから割り当てリストを取得しますが、その時点ではまだありません。

public MainWindow() 
    { 
     InitializeComponent(); 
     assignment1 = new Assignment(); 
     assignment2 = new Assignment(); 
     assignments = new List<Assignment>(); 
     assignment1.AddBasicInformation("Engelsk A", "Hans Rueløkke", "Han gik en tur",  0); 
     assignment1.AddBasicInformation("Historie B", "Lis Hansen", "Hvad hed den første mand på månen? ___.", 0); 
     assignments.Add(assignment1); 
     assignments.Add(assignment2); 
     for(int i = 0; i < assignments.Count; i++) 
     { 
      dataGrid1.Items.Add(assignments); 
     } 
    } 

わかるように、割り当てには3つの文字列と整数があり、さらにそれらには2つのリストが含まれています。ただし、データグリッドに表示させたい唯一の情報は最初の2つの文字列です。それを達成する方法を手伝ってくれる人は誰ですか?

Editted私の割り当てクラスの重要な部分は、コンストラクタでこの

public class Assignment 
{ 
    private string name; 
    private string creator; 
    private string assignmentText; 
    private int type; 
    private List<Answer> answerlist; 

    public void AddBasicInformation(string aname, string acreator, string aassignmentText, int atype) 
    { 
     name = aname; 
     creator = acreator; 
     assignmentText = aassignmentText; 
     type = atype; 
     answerlist = new List<Answer>(); 
    } 

    public string GetName() 
    { 
     return name; 
    } 

    public string GetCreator() 
    { 
     return creator; 
    } 

答えて

1

のように見える、とのforループを置き換える:XAMLで

dataGrid1.ItemsSource = assignments; 

、あなたはその後の結合を宣言することができます列(AssignmentクラスにはAssignemntsとCreatorという名前のプロパティがあるものとします):

<DataGridTextColumn Header="Assignments" Binding="{Binding Name} /> 
<DataGridTextColumn Header="Creator" Binding="{Binding Creator}" /> 

ItemsSourceのバインディングは、この例では反パターンですが、開始されます。

詳細については、WPF DataGrid Classを参照してください。

編集は:OP

によって更新されたコードサンプルに対応してWPFのバインディングのすべてのプロパティで行う必要があります。あなたの割り当てクラスは、フィールドの代わりにプロパティを使用するように更新します。

public class Assignment 
{ 
    Public string Name {get; set;} 
    Public string Creator {get; set;} 
    Public string AssignmentText {get; set;} 

    // ... 
} 
+0

こんにちはあなたの答えのおかげで、私はそれが私は私が私の質問にこれを追加しました私のassignmentclassにバインドする方法を見つける必要があると思う仕事を得るcouldntのため、今。 – Drakthal

+0

私が投稿したWPF DataGridへのリンクを見て、それを読んで、 'Binding'がWPFでどのように動作するかを理解してください。 –

+0

お返事ありがとうございます。デンマークの夜遅く、それを読むためにtommorowまで待っています。これで3行目が表示され、最初の行にはAssignment2の情報が入力され、残りの行には空白が表示されます。 – Drakthal

関連する問題