2014-01-23 3 views
0

Я следую wpf mvvm. Здесь я хочу отобразить значение первичного ключа + 1. т. Е. При выполнении кода, если таблица пуста, тогда отобразите значение первичного ключа как 1. Если таблица имеет 1 строку, тогда отобразите 2 и так далее. поэтому работайте с этим типом. Как принять максимальное значение первичного ключа в таблице в wpf mvvm.Как принять максимальное значение первичного ключа в таблице

Могу ли я использовать функцию Max? тогда как?

ответ

0

Я не совсем понимаю, чего вы пытаетесь достичь, потому что сначала вы говорите о «высшем значении» в таблице, а затем в следующем вы говорите что-то вроде «Если таблица имеет 1 строку, затем отобразите 2 ".

В любом случае, в MVVM все вычисления, связанные с Моделью, помещаются в ViewModel. Если Вы хотите, чтобы показать самый высокий «все, что вы хотите к шоу» в скажем - TextBox, Вам нужно:

(В ViewModel)

  1. Создать integer, что» ll представляют максимум, который вы хотите, допустим, это называется MyMaximum. Привязать к нему в представлении (к TextBox, например)
  2. Сделать Коллекция Вы привязываться к вашей таблицеObservableCollection
  3. Подписаться на OnCollectionChanged из ObservableCollection
  4. Каждый раз, когда OnCollectionChanged в настоящее время вы должны пересчитать MyMaximum так, как вы хотите (например, итерации по списку, ищущему максимум).

Если данные в таблице не привязаны к ViewModel. Вы должны быть точными.

Если это так, то расчет должен быть выполнен на стороне View. Вам нужно создать Attached Behavior, если вы используете MVVM и вычисляете его там.

0

Вы можете сделать это вот так. Давайте предположим, что вы используете DataTable и имя столбца для первичного ключа «ID»:

private static int GetNextId(DataTable table) 
{ 
    return table.Rows.Count > 0 ? table.AsEnumerable().Max(row => (int)row["ID"]) + 1 : 1; 
} 

Если это не подходит, пожалуйста, более конкретно о том, что вам нужно.

Смежные вопросы