Как получить сумму значения столбца ObservableCollection к другому свойству при изменении значений столбцов данных в сети, - МОФ MVVM патернПолучить сумму значения столбца ObservableCollection
1
A
ответ
1
Вот решение:
Xaml:
<Window x:Class="Mvvm.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:System="clr-namespace:System;assembly=mscorlib"
Title="MainWindow" Height="300" Width="400" >
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="20"/>
</Grid.RowDefinitions>
<DataGrid Grid.Row="0"
ItemsSource="{Binding VM.MyList}"
SelectedItem="{Binding VM.MyItem , Mode=TwoWay}"
/>
<TextBlock Grid.Row="1" Text="{Binding VM.Sum}"/>
</Grid>
</Window>
Просмотр моделей:
public class MainViewModel : INotifyPropertyChanged
{
#region INotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
public ObservableCollection<ItemViewModel> MyList { get; set; }
ItemViewModel _myItem;
public ItemViewModel MyItem
{
get
{
return _myItem;
}
set
{
_myItem = value;
OnPropertyChanged("MyItem");
OnPropertyChanged("Sum");
}
}
public int Sum
{
get
{
return MyList.Sum(a=>a.Amount);
}
}
public MainViewModel()
{
MyList = new ObservableCollection<ItemViewModel>();
MyList.Add(new ItemViewModel { Amount = 5});
MyList.Add(new ItemViewModel { Amount = 6});
}
}
public class ItemViewModel : INotifyPropertyChanged
{
#region INotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
int _amount;
public int Amount
{
get
{
return _amount;
}
set
{
_amount = value;
OnPropertyChanged("Amount");
}
}
//Other properties like Id, transactionDate, ...
}
Главный код окна позади:
public MainViewModel VM { get; set; }
public MainWindow()
{
InitializeComponent();
VM = new MainViewModel();
DataContext = this;
}
+0
Итак, в этом случае ItemModel Item является вложенным классом внутри MainViewModel, который удобно, поскольку он позволяет вам запускать событие PropertyChanged для Sum из набора MyItem. Возможно ли вообще сделать это, если ViewModel для элемента в контейнере не является вложенным классом ViewModel, который предоставляет ObservableCollection? –
Смежные вопросы
- 1. Получить сумму столбца
- 2. Получить сумму столбца в mysql
- 3. Получить сумму столбца по дате
- 4. Как получить выбор для запроса на основе значения столбца выпадающего значения и получить сумму другого столбца?
- 5. Получить сумму столбца в таблице
- 6. Yii2 - не получить сумму столбца
- 7. Как получить сумму столбца таблицы?
- 8. Получить сумму столбца в SQL
- 9. Получить сумму строки и столбца
- 10. SQL: выберите сумму каждого отдельного значения столбца
- 11. Как получить сумму столбца в Crystal Reports?
- 12. WPF C# Получить общую сумму столбца DataGrid
- 13. Как получить сумму столбца на нескольких ключах?
- 14. получить сумму дня подряда значения
- 15. DevExpress Как получить сумму GridView столбца C#
- 16. Получить сумму столбца в запросе с соединением
- 17. Как получить сумму вычисленного столбца на входе
- 18. как получить сумму столбца на основе состояния
- 19. Как получить сумму столбца чисел в C#
- 20. MySQL запрос, чтобы получить сумму столбца
- 21. Как получить сумму определенного столбца telerik ListView?
- 22. Невозможно получить сумму столбца в datatable
- 23. Как получить сумму столбца в PHP
- 24. Как получить сумму столбца для разных значений
- 25. Получить сумму столбца ListView при использовании datapager
- 26. Как получить общую сумму для столбца
- 27. Как получить сумму столбца с использованием PDO?
- 28. Android получить сумму столбца базы данных
- 29. Использование Linq Вычислить сумму стоимости ObservableCollection
- 30. Как получить сумму столбца, где значение элемента другого столбца = значение?
Вы хотите отобразить как столбик в виде сетки или сводки внизу? –
Спасибо за ваш отзыв, сводка в нижней части, я хочу отобразить сумму значений столбцов конкретной сетки в нижнем блоке текста. Здесь я использую привязку данных ObservableCollection. – Sam