У меня есть служба WCF, которая передает обновления статуса через такую структуру:
[DataContract]
public struct StatusInfo
{
[DataMember] public int Total;
[DataMember] public string Authority;
}
...
public StatusInfo GetStatus() { ... }
Я выставляю свойство в ViewModel следующим образом:
public class ServiceViewModel : ViewModel
{
public StatusInfo CurrentStatus
{
get{ return _currentStatus; }
set
{
_currentStatus = value;
OnPropertyChanged( () => CurrentStatus );
}
}
}
И XAML нравится так:
<TextBox Text="{Binding CurrentStatus.Total}" />
Когда я запускаю приложение, я вижу ошибки в окне вывода, указывающие, что свойство Total не может быть найдено. Я проверил и дважды проверил, и я набрал его правильно. Мне пришло в голову, что ошибки указывают, что "свойство" не может быть найдено. Поэтому добавление свойства к структуре заставило его работать нормально. Но мне кажется странным, что WPF не может обрабатывать одностороннюю привязку к полям. Синтаксически вы обращаетесь к ним одинаково в коде, и кажется глупым создать пользовательскую модель представления только для структуры StatusInfo. Я пропустил что-то о привязке WPF? Можете ли вы привязываться к полю или связывать свойство единственным способом?