2012-04-09 84 views
0

因此,我嘗試了一段時間來找到像我這樣的案例,但無法找到任何有用的東西。將特定參數添加到WPF中的數據網格

我的問題是,我有一個datagrid,我需要有2列Assignmentnames和作業的創造者。如下圖所示,我已經創建了帶有標題的柱子。

<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個字符串,一個整數,此外它們還包含幾個列表。我想要在datagrid中顯示的唯一信息是前兩個字符串。任何人都可以幫助我如何實現這一目標?

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

在構造函數中,替換與循環:

dataGrid1.ItemsSource = assignments; 

在XAML,可以再申報的結合列(假定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我在我的問題添加它現在。 – Drakthal 2012-04-09 23:19:31

+0

看看我發佈的WPF DataGrid的鏈接,並通過它閱讀,以更好地理解'Binding'在WPF中的工作原理。 – 2012-04-09 23:44:17

+0

非常感謝您的回答。它在丹麥深夜很晚纔等到明天才讀完。現在它顯示了3行,其中第一行填寫了Assignment2中的信息,而其他信息是空的 – Drakthal 2012-04-09 23:53:33

相關問題