Данные привязки WPF теперь отображаются - PullRequest
0 голосов
/ 29 июня 2018

Я очень новичок в стиле 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

1 Ответ

0 голосов
/ 02 июля 2018

Я нашел свою проблему. В моем xaml у меня был "PHList", однако моя собственность была "PhList"

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