簡體   English   中英

WPF DataGrid從文本框中選擇帶有值的行

[英]WPF DataGrid select row with value from textbox

在我的應用程序中,我想選擇dataGrid1中在“訂單”列中具有實際存儲在textBox中的值的行。 如何以編程方式選擇行(不會有兩個具有相同編號的行)?

命名您的DataGrid,以便后面代碼中的代碼可以訪問它。 在文本框中,訂閱KeyUpLostFocus事件,然后找到與文本框中的內容匹配的對象。

示例列表包含具有唯一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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM