我有一個數組:從二維數組將數據傳遞到DataGrid WPF C#
string Companies[,] = new string[100,7];
我怎樣才能把它一個DataGrid?我無法找到任何有效的答案,我不知道從哪裏開始。我是WPF新手,有人可以向我解釋一下嗎?
我有一個數組:從二維數組將數據傳遞到DataGrid WPF C#
string Companies[,] = new string[100,7];
我怎樣才能把它一個DataGrid?我無法找到任何有效的答案,我不知道從哪裏開始。我是WPF新手,有人可以向我解釋一下嗎?
請使用ItemsSource來分配數據集合。我建議你閱讀關於WPF的MVVM實現。但開始...
創建一個實現INotifyPropertyChanged接口
public class Employer : INotifyPropertyChanged
{
private string nameField;
public string Name {
get { return nameField; }
set {
nameField= value;
if (PropertyChanged != null) {
PropertyChanged(this, new PropertyChangedEventArgs("Name"));
}
}
}
private int idField;
public int Id {
get { return idField; }
set {
idField= value;
if (PropertyChanged != null) {
PropertyChanged(this, new PropertyChangedEventArgs("Id"));
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
類創建一個屬性
private ObservableCollection<Employer> employersField;
public ObservableCollection<Employer> Employers
{
get { return employersField; }
set {
employersField= value;
if (PropertyChanged != null) {
PropertyChanged(this, new PropertyChangedEventArgs("Employers"));
}
}
}
現在,讓我們在構造函數中說你做
Employers = new ObservableCollection<Employer> {
new Employer {
Id = 0,
Name = "Mike"
},
new Employer {
Id = 1,
Name = "Dave"
}
}
讓我們假設你沒有視圖類,所以你的所有屬性都在xaml相關的cs文件中。所以,你需要你的DataGrid的DataContext
屬性綁定到你的等級和分配的ItemsSource後,你的財產
<DataGrid DataContext = {Binding ElementName=YourControlName} ItemsSource="{Binding Employers}">
your content
</DataGrid >
YourControlName是一個用戶控件的名字在XAML!
<UserControl x:Name="YourControlName" >
all stuff
</UserControl>
看,這是一個變化簡短的概述,因爲我沒有告訴你如何你的類屬性綁定到DataGrid列以及如何selectedItem屬性綁定到你的財產。但是你可以在stackoverflow和Internet上找到很多例子。我只是展示瞭如何啓動和事物在WPF
對象的構造器的表是如何工作的,如下使用它
class ViewModel
{
public string[,] Companies
{
get;
set;
}
public List<Example> Values
{
get;
set;
}
public ViewModel()
{
Companies = new string[2, 2] { { "sjhbfsjh", "jshbvjs" }, {"vsmvs", "nm vmdz" } };
Values = new List<Example>();
for (int i = 0; i < 2; i++)
{
Example ee = new Example();
ee.A = Companies[i, 0];
ee.B = Companies[i, 1];
Values.Add(ee);
}
}
}
public class Example
{
public string A
{
get;
set;
}
public string B
{
get;
set;
}
}
然後在你的Xmal位,你可以做如下
<DataGrid ItemsSource="{Binding Path=Values}"></DataGrid>
設置數據Xmal.cs中的上下文
DataContext = new ViewModel();