Как добавить элемент в список с помощью шаблона MVVM в WPFC#

Место общения программистов C#
Ответить
Anonymous
 Как добавить элемент в список с помощью шаблона MVVM в WPF

Сообщение Anonymous »

Как я могу обновить свой TerminalList-View с текущими терминалами в шаблоне MVVM в WPF? Я передаю List _terminals в ViewModel, но не знаю, как назначить его наблюдаемой коллекции? Код взят из руководства по SingletonSean
My App.xaml.cs

Код: Выделить всё

namespace TerminalKonfigurator
{
/// 
/// Interaction logic for App.xaml
/// 
public partial class App : Application
{
private readonly List _terminals;
private readonly NavigationStore _navigationStore;
public App()
{
Terminal terminal1 = new Terminal("Terminal1", "129,22,22,31");
Terminal terminal2 = new Terminal("Terminal2", "129,22,22,32");
_navigationStore = new NavigationStore();

_terminals = new List();
_terminals.Add(terminal1);
_terminals.Add(terminal2);
}

private AddTerminalViewModel createAddTerminalViewModel()
{
return new AddTerminalViewModel(_terminals, new Services.NavigationService(_navigationStore, createTerminalListViewModel));
}

private TerminalListViewModel createTerminalListViewModel()
{
return new TerminalListViewModel(_terminals, new Services.NavigationService(_navigationStore, createAddTerminalViewModel));
}

protected override void OnStartup(StartupEventArgs e)
{
_navigationStore.CurrentViewModel = createTerminalListViewModel();

MainWindow = new MainWindow()
{
DataContext = new MainViewModel(_navigationStore)
};
MainWindow.Show();

base.OnStartup(e);
}
}
}
Моя модель TerminalListViewModel

Код: Выделить всё

namespace EMC.TerminalKonfigurator.ViewModels
{
public class TerminalListViewModel : ViewModelBase
{
List terminals = new List();
private readonly ObservableCollection _terminals;
public IEnumerable Terminals => _terminals;
public ICommand NavigateAddTerminalViewCommand { get; }

public TerminalListViewModel(List terminals, Services.NavigationService addTerminalNavigationService)
{
_terminals = new ObservableCollection();
NavigateAddTerminalViewCommand = new NavigateAddTerminalViewCommand(addTerminalNavigationService);

UpdateTerminals();
}

**private void UpdateTerminals()
{
}**
}
}
Мой TerminalListView: Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/791 ... ern-in-wpf
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»