Как использовать ObservableCollection из ViewModel в MainWindows.xaml.cs - PullRequest
0 голосов
/ 28 июня 2019

Я снова борюсь с MVVM. Я прочитал несколько уроков, но моя проблема все еще существует ...

Я пытаюсь использовать MVVM в своем проекте, и мне нужно использовать мою коллекцию ObservableCollection (созданную в ViewModel) в моем файле MainWindows.xaml.cs.

У меня есть модель:

public class MvItems : INotifyPropertyChanged
{
    private string mvName;
    public string MvName
    {
        get { return mvName; }
        set
        {
            mvName = value;
            OnPropertyChanged(nameof(MvName));
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

И ViewModel:

public class MVViewModel
{
    public ObservableCollection<MvItems> Mailverteiler { get { return _Mailverteiler; } }
    public ObservableCollection<MvItems> _Mailverteiler = new ObservableCollection<MvItems>();

    public void LoadMv()
    {
        ObservableCollection<MvItems> temp = new ObservableCollection<MvItems>();

        temp.Add(new MvItems { MvName = "ASD" });
        temp.Add(new MvItems { MvName = "BLA" });
        temp.Add(new MvItems { MvName = "MUH" });

        _Mailverteiler = temp;
    }
}

Вид: Теперь я могу добавить данные из моего MainWindows.xaml.cs через

zTiredV2.ViewModel.MVViewModel MVObject = new zTiredV2.ViewModel.MVViewModel();
MVObject.LoadMv();

lvMailverteiler.DataContext = MVObject;

Тогда я вижу "ASD", "BLA" и "MUH". Но как мне теперь получить к ним доступ, когда я нажимаю другую кнопку?

Нужно что-то вроде этого:

foreach (MvItems mvitem in Mailverteiler)
{
    if (mvitem.IsChecked == true)
    {
        await this.ShowMessageAsync("Mailverteiler", mvitem.MvName, MessageDialogStyle.Affirmative);
    }
}

А как мне добавить еще 1 элемент в список?

1 Ответ

0 голосов
/ 28 июня 2019

Хорошо, это довольно просто ... я могу просто использовать

public zTiredV2.ViewModel.MVViewModel MVList = new zTiredV2.ViewModel.MVViewModel();

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...