Я очень новичок в стиле MVVM. Я смог сделать все в прошлом, написав обширный код в коде за XAML. Тем не менее, я пытаюсь все конвертировать в MVVM.
Проблема:
Я не могу связать сетку данных с моей коллекцией ObservableCollection. Когда я отлаживаю и прохожу свой код, список ObservableCollection устанавливается правильно, то есть я могу просматривать данные в переменных, и они показывают данные, которые я добавляю; однако моя сетка данных не отображает данные. После прочтения я обнаружил, что если я использую ObservableCollection, мне не нужен INotifyPropertyChanged; но потому что это не сработало, у меня есть там сейчас. К сожалению, это все еще не заполняет мою сетку данных.
Любая помощь, которую вы можете предложить, приветствуется.
В конце концов, у меня будет список членов типа, и мне нужна сетка данных, чтобы заполнить данные о каждом члене. Данные поступают из класса Members.
Xaml:
<DataGrid ItemsSource="{Binding Source=PHList}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Member Name" Binding="{Binding Member_Name}"/>
<DataGridTextColumn Header="Medicaid ID" Binding="{Binding Medicaid_ID}"/>
</DataGrid.Columns>
</DataGrid>
Модель приоритета здоровья:
public PriorityHealthMember(string name, string id)
{
Member_Name = name;
Medicaid_ID = id;
}
private string _Member_Name;
public String Member_Name
{
get
{
return _Member_Name;
}
set
{
_Member_Name = value;
OnPropertyChanged("Member_Name");
}
}
private string _Medicaid_ID;
public String Medicaid_ID
{
get
{
return _Medicaid_ID;
}
set
{
_Medicaid_ID = value;
OnPropertyChanged("Medicaid_ID");
}
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion
Встроенная ViewModel
private ObservableCollection<PriorityHealthMember> _PHList;
public ObservableCollection<PriorityHealthMember> PhList
{
get
{
return _PHList;
}
set
{
_PHList = value;
OnPropertyChanged("PhList");
}
}
public OnboardingQueueViewModel()
{
PhList = GetOnboardingQueueList();
}
private ObservableCollection<PriorityHealthMember> GetOnboardingQueueList()
{
ObservableCollection<PriorityHealthMember> list = new ObservableCollection<PriorityHealthMember>();
list.Add(new PriorityHealthMember("Andrews, Nicholas", "M123456"));//Testing for now. Will add the Business Logic after binding works.
return list;
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion