我正在使用两列 (ID,NAME) DataGrid 并希望使用新值更新该行。
我不确定如何在我的 C# 代码中使用绑定部分。
<DataGrid Name="dataGridUser" ItemsSource="{Binding}" VerticalAlignment="Top" Width="auto" Grid.RowSpan="2"/>
如何使用净值更新数据网格,例如:
ID,姓名 123,彼得 345,西蒙....
所以给你一个例子,首先创建一个模型
public class User
{
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
然后在您的代码隐藏文件中创建该模型的 ObservableCollection
private ObservableCollection<User> _myUsers;
public ObservableCollection<User> MyUsers
{
get
{
if (_myUsers == null)
{
_myUsers = new ObservableCollection<User>();
}
return _myUsers;
}
}
现在您可以将 DataGrid 绑定到此属性
<DataGrid Grid.Row="1" Name="dataGridUser" ItemsSource="{Binding MyUsers}" AutoGenerateColumns="True"/>
并且不要忘记设置 DataContext
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
DataContext="{Binding RelativeSource={RelativeSource Self}}"></Window>
如果您将新用户添加到 ObservableCollection MyUsers 中,它将立即显示在您的 DataGrid 中,但如果您更改现有用户的名字,则不会显示更改。为此,您必须在模型中实现INotityPropertyChanged。
但是,如果您打算开发更复杂的应用程序,我建议您查看 MVVM-Pattern。
我个人喜欢MVVM Light Toolkit这个视频应该让你很好地了解 MVVM 的全部内容。