Доступ к локальному через DataContext

#xaml #windows-phone-8 #data-binding

#xaml #Windows-phone-8 #Привязка данных

Вопрос:

Итак, я только что купил пакет sync fusion, и теперь я хочу создать sparkline.

В их документации указано, что я могу просто создать модель и передать ее как привязку к sparkline.

Это то, что я сделал. Я создал пустую страницу с таким объектом sparkline:

 <Charts:SfLineSparkline x:Name="yay" ItemsSource="{Binding OrderList}" YBindingPath="Number" MarkerVisibility="Visible" HorizontalAlignment="Left" Height="138" VerticalAlignment="Top" Width="456" Background="#FFFF9A9A"/>
  

В моем коде у меня есть модель «OrderViewModel», которая выглядит следующим образом:

 public class OrderViewModel
{
    public OrderViewModel()
    {
        this.OrderList = new ObservableCollection<Order>();
        DateTime date = DateTime.Today;
        OrderList.Add(new Order { Number = 2, TimeStamp = date.AddHours(1) });
        OrderList.Add(new Order { Number = 3, TimeStamp = date.AddHours(2.3) });
        OrderList.Add(new Order { Number = 1, TimeStamp = date.AddHours(4) });
    }
    public ObservableCollection<Order> OrderList { get; set; }
}
  

Класс «Order» выглядит следующим образом:

 public class Order
{
    public DateTime TimeStamp { get; set; }
    public int Number { get; set; }
}
  

Пока это не работает.

Согласно их документам, в нем говорится, что я должен сделать что-то вроде добавления контекста данных в приведенную выше сетку, используя локальный тег пространства имен, которого у меня нет.

Это должно выглядеть так:

 <Grid.DataContext>
     <local:OrderViewModel/>
</Grid.DataContext>
  

Я понимаю, что это, вероятно, настоящий вопрос для новичков, но я уже некоторое время пытаюсь заставить это работать, и это просто не работает.

Это документы, на которые я ссылаюсь 🙂 http://help.syncfusion.com/UG/Windows Phone 8/Documents/creatingsparkline.htm

Ответ №1:

Замените MyProject на ваш.

   xmlns:local="using:MyProject"
  

Или, если OrderViewModel в другом пространстве имен

   xmlns:local="using:MyProject.ViewModels"
  

Вы должны добавить его с

   xmlns:Syncfusion="clr-namespace:Syncfusion.UI.Xaml.Charts"
  

Другой способ:

Используйте окно свойств, если оно закрыто, откройте его с помощью F4, щелкните тег сетки, затем перейдите к свойству DataContext и нажмите new или желтый квадрат, чтобы выбрать свой OrderViewModel.

Комментарии:

1. Спасибо за ваш ответ, но проблема в локальном, а не в сетке 🙂

2. К сожалению, из представления привязки нечего добавлять, и я не позволю мне добавлять все пространство имен только в мое имя проекта:/. Он говорит, что он не найден