Здравствуйте.
Есть класс:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
namespace TraidingDiagrams
{
internal class OrdinateAxis : INotifyPropertyChanged
{
public event PropertyChangedEventHandler? PropertyChanged;
private int _location;
private int _xValue;
public int Location
{
get { return _location; }
set { _location = value; }
}
public int XValue
{
get { return _xValue; }
set { _xValue = value; }
}
public void Values()
{
XValue = 0;
while (true)
{
Task.Delay(100).Wait();
OnPropertyChanged("XValue");
XValue++;
}
}
protected void OnPropertyChanged([CallerMemberName] string name = " ")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
}
}
}
Привязываю его через Data Context:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
OrdinateAxis ordinateAxis = new OrdinateAxis();
Task.Run(() => { ordinateAxis.Values(); });
DataContext = ordinateAxis;
}
}
В XAML:
<Canvas Grid.Column="0">
<Label Name="Lable1" Canvas.Top="{Binding Path=XValue}" Foreground="White" Content="{Binding Path=XValue }"></Label>
</Canvas>
Все без проблем работает. Но меня смущает один момент, везде приводиться пример привязки через
Window.Resources
и вот тут у меня загвоздка. Я пытаюсь вставить, но получаю ошибку и больше код не работает.
Подскажите как правильно это делать? Пытался вставить Data Context напрямую в XAML тоже потерпел фиаско. Во всех примерах Митанита и лернинг МС ресурсы добавляют в XAML, а на мне видно проклятие...
Спасибо.