Всем добрый вечер! Пытаюсь сделать binding к элементу на форме wpf, но вылезает ошибка: Ссылка на объект не указывает на экземпляр объекта. Моя xaml форма имеет следующий код:
<lvc:CartesianChart Grid.Column="1" VisualElements="{Binding Visuals}" Name="chart" />
А сама коллекция для binding образуется следующим образом:
public VisualElementsCollection visuals;
public MainWindow()
{
InitializeComponent();
visuals = new VisualElementsCollection();
EventA = new VisualElement();
EventB = new VisualElement();
visuals = new VisualElementsCollection
{
new VisualElement
{
X = 100,
Y = 300,
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Top,
UIElement = new EventAControl()
},
new VisualElement
{
X = 50,
Y = 50,
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Top,
UIElement = new EventBControl()
}
};
DataContext = this;
}
public VisualElementsCollection Visuals
{
get
{
return visuals;
}
set
{
visuals = value;
INotifyPropertyChanged("Visuals");
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void INotifyPropertyChanged(String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
Как можно исправить инициализацию объекта, чтобы ошибка это не выходила? Изменил код добавил INotifyPropertyChanged, но все равно ничего не выводит
А пробовали задать в Series="{Binding SeriesCollection}"
в xaml разметке где SeriesCollection
Ваша коллекция?!
Тут сразу видно несколько проблем.
Во-первых, как правильно подсказывает @Ev_Hyper, вы должны реализовать INotifyPropertyChanged
, чтобы ваши изменения подхватывались.
Во-вторых, если вы используете MVVM, то привязываться вы должны не к свойствам окна, а к свойствам вашего DataContext
'а. А если вы всё же хотите почему-то привязаться к свойствам окна, вы должны установить на него DataContext
(или поменять Source
/RelativeSource
в привязке.
Ну и в третьих, привязка имеет право вернуть null
в промежуточные моменты, так что ваш код внутри lvc:CartesianChart
не должен падать, если привязка ничего не возвращает.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пришла в голову идея организовать промежуточное сохранение данных, вроде экземпляров класса, в файле, для дальнейшей работы с нимиЗадача...
почему при вычитании двух дат типа DateTime получается значение типа TimeSpan, и как мне получить отсюда результат типа DateTime?
Пытаюсь выполнить SQL запрос, при выполнении метода Fill, почему-то выбивает ошибку: