![](/img/trans.png)
[英]C# WPF Select in DataGrid the first row with pressing Enter from a Textbox
[英]WPF DataGrid select row with value from textbox
在我的应用程序中,我想选择dataGrid1中在“订单”列中具有实际存储在textBox中的值的行。 如何以编程方式选择行(不会有两个具有相同编号的行)?
命名您的DataGrid,以便后面代码中的代码可以访问它。 在文本框中,订阅KeyUp
或LostFocus
事件,然后找到与文本框中的内容匹配的对象。
示例列表包含具有唯一OrderId的订单
XAML
<DataGrid AutoGenerateColumns="True"
Name="myGrid"
ItemsSource="{Binding Orders}"/>
<TextBox x:Name="tbSelection"
KeyUp="tbSelection_LostFocus"/>
代码隐藏
private void tbSelection_LostFocus(object sender, RoutedEventArgs e)
{
if (string.IsNullOrWhiteSpace(tbSelection.Text) == false)
{
int userOrderId;
if (int.TryParse(tbSelection.Text, out userOrderId))
{
var orders = myGrid.ItemsSource as List<Order>;
var order = orders.FirstOrDefault(ord => ord.OrderId == userOrderId);
if (order != null)
myGrid.SelectedItem = order;
else
myGrid.SelectedIndex = -1; // Default to nothing.
}
else
myGrid.SelectedIndex = -1; // Default to nothing.
}
}
结果
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.