Имам обект за изтегляне в моя EF модел на данни. Две от неговите свойства, Size и BytesDownloaded, изчисляват, за да ми дадат свойството Progress, което създадох в частичния клас:
partial class Download
{
public int Progress
{
get
{
if (!Size.HasValue || Size.Value == 0) return 0;
return Convert.ToInt32(Math.Floor(100.0 * ((double)BytesDownloaded / (double)Size)));
}
}
}
В моя WPF потребителски интерфейс имам:
<DataGridTemplateColumn x:Name="progressColumn" Header="Progress" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ProgressBar Value="{Binding Path=Progress, Mode=OneWay}" Maximum="100" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Тъй като Progress не е част от Entity Model (edmx), трябва да уведомя потребителския интерфейс, че трябва да актуализира ProgressBar. Мислех, че мога да направя това така:
partial void OnBytesDownloadedChanging(long value)
{
ReportPropertyChanging("Progress");
}
partial void OnBytesDownloadedChanged()
{
ReportPropertyChanged("Progress");
}
Това се компилира добре, но когато стартирам приложението и се извикат OnBytesDownloadedChanging/Changed, получавам това изключение при извикването си към ReportPropertyChanging/Changed:
Свойството „Прогрес“ няма валидно съпоставяне на обект на обекта на обекта. За повече информация вижте документацията на Entity Framework.
Разбирам какво казва съобщението за грешка, но не разбирам какво мога да направя, за да постигна целта си.
PS - За каква конкретна "документация" изобщо се позовават? въздишка! Ако ще намекнат, че има документация за тази грешка, защо просто не ме свържат с документацията, вместо да ми кажат [безсмислено] да се опитам да я намеря?