Я разрабатывал программу с datagridview. Мне нужна помощь с добавлением значений в строки и ячейки:

Мой код:

  for (int i = 0; i < 0x18; i++)
            {
                this.dataview1.UpdateDefaultStyle();
               this.dataview1.Rows[i].Cells[0].Value = i;
                this._dataview1[i].Cells[1].Value = GetName(i);
                Application.DoEvents();
            }

Это не работает, я получаю это как ошибку: System.Windows.Controls.DataGrid не содержит строк. Та же ошибка с ячейками. Он отлично работает в C #. Мой код wpf;

<Grid Background="#FFE5E5E5">
    <DataGrid x:Name="dataview1" HorizontalAlignment="Left" VerticalAlignment="Top" Height="337" Width="809">
        <DataGrid.Columns>
            <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="Client"/>
            <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="Name"/>
        </DataGrid.Columns>
    </DataGrid>

Помогите, пожалуйста! Надеюсь, я достаточно прояснил это.

wpf
1
Christos92 16 Май 2014 в 19:52

2 ответа

Лучший ответ

Попробуй это . WPF имеет волшебные привязки

Вам просто нужно добавить элемент в коллекцию (ваш источник) привязок WPF, и DataGrid добавит строки за вас

<DataGrid ItemsSource="{Binding Customers}" AutoGenerateColumns="False" >
<DataGrid.Columns>
      <DataGridTextColumn Header="Client" Binding="{Binding Client}" />
      <DataGridTextColumn Header="Name" Binding="{Binding Name}" />

</DataGrid.Columns>
</DataGrid>

ViewModel / CodeBehind

public class MyClients
 {

public string Name { get; set; }       
public string Client{ get; set; }

}

ObservableCollection<MyClients>  Customers=new ObservableCollection<MyClients>();

// Add data to the customer collection , as it is OBSERVABLE collection its notify when you add/remove item in OB. Collection

** При добавлении порции **

       for (int i = 0; i < 0x18; i++)
        {
            Customers.Add(new MyClients(){Client="value",Name="value"});
        }

**Collection Updated the datagrid also will be updated**

См. Ссылку Link1

link2

ссылка 3

4
Eldho 16 Май 2014 в 19:07

Обновленный код здесь ...

<DataGrid  x:Key="dg" ItemsSource="{Binding}" AutoGenerateColumns="False">
<DataGrid.Columns>
      <DataGridTextColumn Header="Name" Binding="{Binding Name}" />
      <DataGridTextColumn Header="Company" Binding="{Binding Company}" />

</DataGrid.Columns>
</DataGrid>

Код ViewModel здесь ...

public class Employee


{

public string Name { get; set; }       
public string Company{ get; set; }

}
ObservableCollection<Employee>  Customers=new ObservableCollection<Employee>();
for (int i = 0; i < 0x18; i++)
        {
            Emp.Add(new Employee(){Name="Kalsa",Company="Google"});
        }
         dg.ItemsSource=Emp;
0
KaluSinghRao 17 Май 2014 в 11:13