Я снова борюсь с 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 элемент в список?