0

i'm struggling again with MVVM. I've read some tutorials, but my problem still exists ...

I'm trying to use MVVM in my project and need to use my ObservableCollection (created in ViewModel) in my MainWindows.xaml.cs.

I've a Modell:

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));
    }
}

And a 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;
    }
}

View: Now i can add data from my MainWindows.xaml.cs via

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

lvMailverteiler.DataContext = MVObject;

Then i see "ASD", "BLA" and "MUH". But how can i now get access to them, when i press a other button?

Need something like this:

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

And how can i add 1 more item to the list?

DerKiLLa
  • 135
  • 12
  • Possible duplicate of [Getting WPF ListView.SelectedItems in ViewModel](https://stackoverflow.com/questions/10964910/getting-wpf-listview-selecteditems-in-viewmodel) – Sinatr Jun 28 '19 at 12:07
  • 1
    Adding new item is as easy as adding it to `Mailverteiler`. Btw, backing field shouldn't be `public` and likely `readonly`, consider instead to use getter-only auto-property with initializer. – Sinatr Jun 28 '19 at 12:08
  • Thanks! Adding is really easy ... `MVObject._Mailverteiler.Add(new zTiredV2.Model.MvItems { MvName = group.DisplayName, IsChecked=false });` But how can i access the list and add another item later? – DerKiLLa Jun 28 '19 at 12:13
  • 1
    Ok, i'm a idiot :D I just can use `public zTiredV2.ViewModel.MVViewModel MVList = new zTiredV2.ViewModel.MVViewModel(); public zTiredV2.ViewModel.MaViewModel MAList = new zTiredV2.ViewModel.MaViewModel();` in my MainWindows.xaml.cs and use it ... and iterate like: `foreach (zTiredV2.Model.MvItems mvitem in MVList.Mailverteiler)` – DerKiLLa Jun 28 '19 at 12:28

1 Answers1

0

Okay, its quite simple ... i can just use

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

So i can add items, iterate through them and so on ...

DerKiLLa
  • 135
  • 12