1
在我的应用程序中,我想选择dataGrid1中的“Order”列中实际存储在textBox中的值。 我怎样才能选择行programmaticaly(不会有两个数字相同的行)?WPF DataGrid从文本框中选择具有值的行
在我的应用程序中,我想选择dataGrid1中的“Order”列中实际存储在textBox中的值。 我怎样才能选择行programmaticaly(不会有两个数字相同的行)?WPF DataGrid从文本框中选择具有值的行
为您的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.
}
}
结果
更新你的答案,包括你的代码,到目前为止,你已经尝试了什么 –