Вопрос

Вот такая ситуация:Мне нужно привязать WPF FixedPage против DataRow.Привязки не работают против DataRows;они работают против DataRowViews.Мне нужно сделать это как можно более общим способом, поскольку я ничего не знаю о том, что находится в DataRow.

Что мне нужно, так это иметь возможность получить DataRowView для данного DataRow.Я не могу использовать Find() метод на основе DefaultView потому что для этого требуется ключ, и нет никакой гарантии, что в таблице будет установлен первичный ключ.

У кого-нибудь есть предложения относительно наилучшего способа обойти это?

Это было полезно?

Решение

Не совсем сексуальный фрагмент кода, но, похоже, это не автоматизированный способ поиска строки без простого перебора таблицы.

        DataRowView newRowView = null;
        foreach (DataRowView tempRowView in myDataTable.DefaultView)
        {
            if (tempRowView.Row == rowToMatch)
                newRowView = tempRowView;
        }
        if (newRow != null)
            UseNewRowView(newRowView);
        else
            HandleRowNotFound();

Другие советы

row.Table.DefaultView[row.Table.Rows.IndexOf(row)]

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top