Как привязать ObservableCollection к Datagrid?

#wpf #collections #datagrid #binding

#wpf #Коллекции #datagrid #привязка

Вопрос:

I’m David. Я не знаю, как привязать коллекцию к datagrid в XAML для приложения WPF.

ниже приведены классы.

 class TestSetting(): INotifyChanged
{
   private a
   public double A
   {
      get a;
      set a = value;
      Notify("A");
   }

   private b
   public double B
   {
      get b;
      set b = value;
      Notify("B");
   }

   private c
   public double C
   {
      get c;
      set c = value;
      Notify("C");
   }

}


class TestCollect():ObservableCollection<T> ,INotifyListener
{

}
  

приведенный выше код является псевдокодом.

DataContext содержит 7 элементов. Таким образом, в сетке будет 7 столбцов. Не мог бы кто-нибудь, пожалуйста, помочь мне с примером или фрагментом кода.

Ответ №1:

Если datacontext содержит TestCollection, все, что необходимо, это установить для ItemsSource значение {Binding}

Ответ №2:

Я думаю, что вам нужно что-то вроде этого :

Ваша viemodel :

 public class ViewModel
{
    public ViewModel()
    {
        SourceList = new ObservableCollection<BusinessAdapter>();

        for (int i = 0; i < 50; i  )
        {
            SourceList.Add(new BusinessAdapter { BusinessProperty = "blabla_"   i });
        }
    }
    public ObservableCollection<BusinessAdapter> SourceList { get; private set; }
}
  

Вы просматриваете код, лежащий в основе

 public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();

        DataContext = new ViewModel();

    }
}
  

И затем, на ваш взгляд. Важным элементом здесь является ‘ ItemsSource =»{Привязка исходного списка}» ‘, что в основном означает «исходная коллекция моего listbox — это коллекция моего datacontext (который является объектом Viewmodel) с именем SourceList»

         <ListView x:Name="listOne" 
              Grid.Column="0" 
              Width="50" 
              Height="200" 
              ItemsSource="{Binding SourceList}"  />
  

Ответ №3:

Я новичок, но рискну ответить:

 ObservableCollection<YourModel> yourdata = new ObservableCollection<YourModel>();
dataGrid.ItemsSource = yourdata;
  

Оператор 2nd. выполняет привязку.