Я новичок в связывании данных WPF и немного застрял.
Видимо, мое текстовое поле неправильно связано с элементом данных, который я намереваюсь, и я не могу понять, почему.
Сначала в моемMainWindow.xaml
file, я объявляю объект:
<Window.Resources>
<local:Aircraft x:Key="Aircraft"/>
</Window.Resources>
Это создает объект типа Aircraft во время MainWindow.InitializeComponent()
(я могу проверить это, установив точку останова на конструкторе Aircraft)
Класс Aircraft
определен в файле .cs
со свойством Pilot
со свойством Weight
, так что myAircraft.Pilot.Weight
является int
.
Далее я пытаюсьчтобы привязать текстовое поле к этому свойству:
<TextBox Name="PICWeight" DataContext="{Binding Source={StaticResource Aircraft}, Path=Pilot.Weight}" />
Приложение компилируется и запускается, но когда я помещаю числовой текст в текстовое поле, а затем перемещаю фокус в другое текстовое поле, я ожидаю увидеть setter
дляPilot.Weight
Вам позвонят (у меня есть точка останова).Это не так.
Я считаю, что должен быть ValueConverter по умолчанию от String (из текстового поля) до int (тип свойства Weight), и что у текстовых полей должно быть событие update-source по умолчанию LostFocus
.
Правильно ли я указываю привязку?
Нужно ли создавать ValueConverter или явно указывать событие обновления?
Есть ли что-то еще, что я делаю неправильно?