[英]From a textbox to a datagrid WPF C#
所以我目前正在尝试一些不同的东西,我想将文本从我的文本框中推送到数据网格。 我目前已经像这样制作了我的 XAML:
XAML:
<Grid>
<DataGrid HorizontalAlignment="Left" Height="160" Margin="138,54,0,0" VerticalAlignment="Top" Width="512">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding ID}" Width="*" />
<DataGridTextColumn Header="NAME" Binding="{Binding NAME}" Width="*" />
</DataGrid.Columns>
</DataGrid>
<Label x:Name="lblID" Content="ID:" HorizontalAlignment="Left" Margin="138,239,0,0" VerticalAlignment="Top"/>
<Label x:Name="lblNAME" Content="NAME:" HorizontalAlignment="Left" Margin="138,265,0,0" VerticalAlignment="Top"/>
<TextBox x:Name="txtID" HorizontalAlignment="Left" Height="23" Margin="187,243,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120"/>
<TextBox x:Name="txtNAAM" HorizontalAlignment="Left" Height="23" Margin="188,271,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120"/>
<Button x:Name="btnSend" Content="Send" HorizontalAlignment="Left" Margin="233,316,0,0" VerticalAlignment="Top" Width="75"/>
</Grid>
如您所见,我已经有一个名为发送的按钮,并且我有 2 个名为 ID 和 NAME 的文本框。
那么如何仅通过单击 1 个按钮(发送)将文本框中的文本添加到数据网格中,以及如何在第二行和第三行等中继续重复它?
如果您有 View model 那么您可以将 2 个不同的控件绑定到同一字段
这意味着当您更改文本框时,它将使用绑定来更新支持字段,然后虚拟机将通知所有控件他们需要更新值
class VM : INofityPropertyChanged
{
private string text;
public string Text
{
get=>text;
set{
text=value;
PropertyChanged(this,new PropertyChangedEventArg("Text");
}
}
...
}
然后使用绑定
<TextBox Text="{Binding Text}"/>
<Label Content="{Binding Text}"/>
这假设您已将 VM 设置为数据上下文
原始且直接的方法是简单地将事件处理程序添加到Button
的Click
事件,并将 class 的实例添加到那里的DataGrid
的源集合中,例如:
public partial class MainWindow : Window
{
private readonly ObservableCollection<Model> _items = new ObservableCollection<Model>();
public MainWindow()
{
InitializeComponent();
dataGrid.ItemsSource = _items;
btnSend.Click += BtnSend_Click;
}
private void BtnSend_Click(object sender, RoutedEventArgs e)
{
_items.Add(new Model() { ID = txtID.Text, NAME = txtNAAM.Text });
}
}
public class Model
{
public string ID { get; set; }
public string NAME { get; set; }
}
如果您正在开发企业应用程序,您应该考虑重构代码以使用视图 model class 在视图(窗口)和 model 之间的可测试性和关注点分离。 这种设计模式被称为MVVM (Model-View-ViewModel) 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.