Документация о DataGrid на UWP не ясна - PullRequest
0 голосов
/ 09 января 2019

Так как я следил за документацией о DataGrid, используя инструментарий Windows, по мере продвижения вниз. Есть пример кода

Это

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

А это код с моей стороны

<controls:DataGrid x:Name="dgvTest"
                           Height="800"
                           Margin="1"
                           AutoGenerateColumns="True"
                           ItemsSource="{x:Bind }">

Пока я это пробовал. Я не могу найти, откуда появился MyViewModel.

Идя дальше, у них есть этот код

//backing data source in MyViewModel
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)
        });
    }
}

Так что, безусловно, MyViewModel не является классом, потому что Customer является классом, и строка сэмпла на странице GitHub имеет эту строку

private DataGridDataSource viewModel = new DataGridDataSource();

Но всякий раз, когда я пытаюсь добавить это в свой код, я сталкиваюсь с ошибкой, которая такова:

Ошибка CS0246 Тип или имя пространства имен 'DataGridDataSource' не удалось быть найдены (вы пропустили директиву использования или сборку ссылка?)

Извините, если я звучу как любитель, но когда я использовал DataGridView, используя WinForms, я никогда не сталкивался с этой проблемой.

Любая помощь будет принята с благодарностью. Спасибо

1 Ответ

0 голосов
/ 09 января 2019

Класс DataGridDataSource находится здесь: https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/35ffc09c4cba6354eb7d9dcac1f97c554ac5df68/Microsoft.Toolkit.Uwp.SampleApp/Data/DataGridDataSource.cs

Если вы x:Bind до MyViewModel.Customers в своем XAML, MyViewModel должно быть свойством класса страницы, которое возвращает экземпляр класса, который имеет свойство Customers, которое возвращает List<Customer>:

public class DataGridDataSource
{
    public List<Customer> Customers => Customer.Customers();
}

public sealed partial class MainPage : Page
{
    public DataGridDataSource MyViewModel => new DataGridDataSource();

    public MainPage()
    {
        InitializeComponent();
    }
}

Если вы посмотрите на последний пример в документах , вы увидите, что класс MainPage.xaml.cs имеет свойство List<Person> с именем "Persons", к которому DataGrid привязывается:

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