Я довольно новичок в разработке на C #.Я пытаюсь создать простую круговую диаграмму, используя Visual Studio, C # и Extended WPF Toolkit.Код, который следует, является частью библиотеки DLL, которую я пытаюсь построить (подключите для Revit).Я установил Extended WPF Toolkit, используя NuGet.Я не смог найти ни одного учебного пособия или примеров, поэтому я попытался выложить код из некоторых частей, которые я нашел в разных онлайн-источниках.На данный момент у меня есть
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
<Grid Grid.Row="1">
<xctk:Pie x:Name="foobar"
DataContext="{Binding PieCollection, UpdateSourceTrigger=PropertyChanged}" >
</xctk:Pie>
</Grid>
и
public class PiePoint
{
public string Name { get; set; }
public Int16 Share { get; set; }
}
public class CompareToMultiLODViewModel : INotifyPropertyChanged
{
private ObservableCollection<PiePoint> _pieCollection;
public ObservableCollection<PiePoint> PieCollection
{
get { return _pieCollection; }
set { _pieCollection = value; OnPropertyChanged("PieCollection"); }
}
public CompareToMultiLODViewModel()
{
CompareToMultiLODBtnCommand = new MRCommand(this);
PieCollection = new ObservableCollection<PiePoint>();
PieCollection.Add(new PiePoint { Name = "Mango", Share = 10 });
PieCollection.Add(new PiePoint { Name = "Banana", Share = 36 });
}
private PropertyChangedEventHandler _PropertyChanged;
event PropertyChangedEventHandler INotifyPropertyChanged.PropertyChanged
{
add
{
//((INotifyPropertyChanged)PieCollection).PropertyChanged += value;
_PropertyChanged += value;
}
remove
{
//((INotifyPropertyChanged)PieCollection).PropertyChanged -= value;
_PropertyChanged -= value;
}
}
private void OnPropertyChanged(string PropertyName)
{
_PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(PropertyName));
}
Код XAML:
public partial class CompareToMultiLOD : Page
{
public CompareToMultiLOD()
{
InitializeComponent();
DataContext = new CompareToMultiLODViewModel();
}
Я не знаю, если это актуально, но при отладкея вижу, что DataContext назначается до создания PieCollection, а затем OnPropertyChanged запускается один раз, при инициализации PieCollection.Кажется, что PropertyChanged срабатывает один раз (чего я не понимаю, поскольку я добавляю два значения).
Я не уверен, что ViewModel - это подходящее место для хранения данных, которые использует круговая диаграмма, но я поместил их там временно(очевидно, это ложный класс).
В данный момент я просто хотел бы заставить его работать.Любая помощь приветствуется!