Вопрос по привязке данных UWP DataGrid с использованием MVVM - PullRequest
0 голосов
/ 28 сентября 2019

Впервые пытаюсь использовать MVVM для привязки данных в приложении .NET.Исходя из унаследованного мира .NET, я не совсем понимаю, использование MVVM в UWP приложении .

Я пытаюсь связать следующий элемент управления DataGridв моем приложении UWP с моим MVVM (показанным ниже), это класс, созданный на верхнем уровне проекта с именем My_UWP_Project. Вопрос : Чтобы заполнить данные клиента, какое значение я должен добавить к ???? из ItemsSource="{x:Bind ????}" строки элемента управления DataGrid?

Примечание : Для привязки данных яИспользую новый подход, рекомендованный Microsoft Расширение разметки {x: Bind} применительно к Класс привязки .

Элемент управления DataGrid в MainPage.xaml :

<controls:DataGrid x:Name="dataGrid1" 
    Height="600" Margin="12"
    AutoGenerateColumns="True"
    ItemsSource="{x:Bind ????" />

Класс клиента [ViewModel]:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace My_UWP_Project
{
    //backing data source
    public class Customer
    {
        public String FirstName { get; set; }
        public String LastName { get; set; }
        public String Address { get; set; }
        public Boolean IsNew { get; set; }

        public Customer(String firstName, String lastName,
            String address, Boolean isNew)
        {
            this.FirstName = firstName;
            this.LastName = lastName;
            this.Address = address;
            this.IsNew = isNew;
        }

        public static List<Customer> Customers()
        {
            return new List<Customer>(new Customer[4] {
            new Customer("A.", "Zero",
                "12 North Third Street, Apartment 45",
                false),
            new Customer("B.", "One",
                "34 West Fifth Street, Apartment 67",
                false),
            new Customer("C.", "Two",
                "56 East Seventh Street, Apartment 89",
                true),
            new Customer("D.", "Three",
                "78 South Ninth Street, Apartment 10",
                true)
        });
        }
    }
}

1 Ответ

0 голосов
/ 28 сентября 2019

Я давно не занимаюсь разработкой приложений UWP, но, насколько я помню, вы можете напрямую связать свойство или метод viewmodel с подходом x:Bind.

Сначала определите вашу модель представления

<Page.DataContext>
  <Customer x:Name="ViewModel" />
</Page.DataContext>

, а затем используйте его для привязки.

ItemsSource="{x:Bind ViewModel.Customers}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...