2014-01-28 51 views
1

我想創建一個WPF應用程序。在我的應用程序中,我想在我的dataGrid的3行中添加一個ComboboxCell。如何創建一個dataGridViewComboBoxCell並將其添加到dataGrid

我可以用下面的代碼在C#窗口應用程序做到這一點:

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
      InitializeComponent(); 
      for (int i = 1; i < 13; i++) 
      { 
       dataGridView1.Columns.Add("Slot" + i, "Slot " + i); 
      } 
      for (int i = 0; i < 18; i++) 
      { 
       dataGridView1.Rows.Add(); 
      }GridBaseCells(); 
    } 
    DataGridViewComboBoxCell ModeCell = new DataGridViewComboBoxCell(); 
    string[] Modes= { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F" }; 
    void GridBaseCells() 
    { 
     ModeCell.Items.AddRange(ModeAr); 
     for (int i = 2; i < 14; i++) 
     { 
       dataGridView1[i, 3] = (DataGridViewComboBoxCell)ModeCell.Clone(); 
       dataGridView1[i, 3].Value = "C"; 
     } 
    } 
} 

我試圖實現使用WPF相同。但我無法做到這一點(我找不到DataGridViewComboBoxCell)。

我該怎麼做? (請幫助一個例子,我是WPF的新手,在綁定和所有方面沒有太多的想法)。

+0

你不加細胞,你添加行,但如果你在WPF的方式做正確的,那麼你也不行添加...您添加一個新的數據項並讓WPF爲您呈現新行。請參閱MSDN的[數據綁定概述](http://msdn.microsoft.com/zh-cn/library/ms752347(v = vs.110).aspx)頁面,以獲取有關數據綁定的幫助。 – Sheridan

+0

你確定*你的問題甚至與WPF相關?爲什麼你的類擴展了'Form'類? – Sheridan

+0

上面的代碼是'C#Windows窗體應用程序'。我想在C#WPF應用程序中實現相同的功能。 – Jake

回答

1

好的,所以我希望你願意自己做一些工作......你將有很多做。 WPF是很有不同於WinForms,所以你不能用你的WinForms代碼作爲開始。你將不得不圍繞着一種非常不同的工作方式。在WPF中,我們使用數據元素而不是UI元素

我的意思是,我們建立一個包含所有實施INotifyPropertyChanged interface在UI所需的性能等級。然後,當我們在UI已經把這些類的集合,我們簡單地將數據綁定到一個採集控制的ItemsSource屬性:

<DataGrid ItemsSource="{Binding YourItems}" /> 

DataGrid將自動生成它的列給你的。因此,要回答你的問題,我們需要做一個新行添加到DataGrid是一個新的項目加入到集合中的代碼:然後

YourItems.Add(new YourItemClass()); 

INotifyPropertyChanged接口將更新UI的護理您。所以,這是你基本形式的答案。

而不是試圖所有WPF這裏教給你,我寧願你點一些非常有用的在線資源,讓你獲得什麼是可能的,如何做一個更好的主意:

WPF DataGrid Control從WPF Tutorial.net
WPF DataGrid Practical Examples從CodeProject

相關問題