2013-10-28 4 views

ответ

2

Используйте ItemsSource для назначения коллекций данных. Я предлагаю вам прочитать о реализации MVVM для WPF. Но для начала ...

Создать класс, который реализует интерфейс 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" 
     } 
    } 

Давайте предположим, что у вас нет класса вида, поэтому все ваши свойства в файле cs, связанном с xaml. Так что вам нужно, чтобы связать DataContext свойство вашего DataGrid к классу и после Назначают ItemsSource вашей собственности

<DataGrid DataContext = {Binding ElementName=YourControlName} ItemsSource="{Binding Employers}"> 
your content 
</DataGrid > 

YourControlName является именем UserControl в XAML!

<UserControl x:Name="YourControlName" > 
all stuff 
</UserControl> 

Посмотрите, это меняться краткий обзор, потому что я не показал вам, как связать свои свойства класса в DataGrid столбцов, а также как связать SelectedItem свойство вашей собственности. Но вы можете найти много примеров в stackoverflow, а также в Интернете. Я просто показал, как начать и как вещи работают в WPF

0

Конструктор Список объектов, как показано ниже использовать его

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(); 
Смежные вопросы