Получить данные из DataGrid WPF - PullRequest
0 голосов
/ 15 февраля 2019

Как я могу получить данные из DataGrid , когда текст ComboBox 'равен записи DataGrid:

combobox1.ItemsSource = database.Mahs.ToList();

combobox1.DisplayMemberPath = "MahName";

и

private void datagrid_customer_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var data = datagrid_customer.SelectedItem;
    string id = (datagrid_customer.SelectedCells[0].Column.GetCellContent(data) as TextBlock).Text;
    txt_f1.Text = id;
}

Показываетмне идентификатор, но когда я выбрал элемент, но я хочу показать мне идентификатор, когда combobox.Text = имя строки в DataGrid, а затем показать идентификатор этой строки.

1 Ответ

0 голосов
/ 15 февраля 2019

Я бы предложил немного изменить ваш подход и извлечь весь объект из обоих элементов управления для сравнения.Таким образом, вы получаете полный доступ к свойствам каждого выбранного объекта.

Если объекты, которые вы извлекаете из базы данных, переопределяют .Equals и .GetHashCode, вы можете покончить с некоторыми из приведенных ниже операторов if.Но для начала вот краткий пример вашего слушателя изменений

private void datagrid_customer_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    // Cast the objects from your DataGrid and your ComboBox. 
    YourDataObject dataItem = (YourDataObject)dataGrid1.SelectedItem;
    YourDataObject comboItem = (YourDataObject)combo.SelectedItem;

    // Compare your objects and decide if they're the same. Ideally you would 
    // have Equals and HashCode overridden so you could improve this
    if (dataItem == null || comboItem == null)
        text.Text = "Not Matching";
    else
    {
        if (dataItem.MahName == comboItem.MahName)
            // You've got full access to the object and all it's properties
            text.Text = dataItem.Id.ToString();
        else
            text.Text = "Not Matching";
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...