2011-12-15 5 views
1

У меня есть три фотографии в простом приложении WPF. Автомобиль, самолет и поезд.Как связать объект POCO с графическим интерфейсом WPF?

Когда я нажимаю на любой из них, я загружаю соответствующий «транспортный» объект, который имеет имя транспорта, путь к файлу изображения и другие свойства строки. Простой объект POCO.

Как объявить шаблон , в XAML, чтобы затем применить этот объект POCO в качестве источника данных и поместить свойство X внутри элемента Foo?

Вот мой простой XAML:

<StackPanel> 
    <TextBlock>Car</TextBlock> 
    <TextBlock>Slow</TextBlock> 
    <TextBlock>4 Wheels</TextBlock> 
</StackPanel> 

Так свойства здесь будет шаблон держатели для POCO я обеспечиваю.

Как предоставить этот контекст данных?

ответ

4
<StackPanel x:Name="transportPanel"> 
    <TextBlock Text="{Binding Name}" /> 
    <TextBlock Text="{Binding Speed}" /> 
    <TextBlock Text="{Binding Components}" /> 
</StackPanel> 

И в коде, вы устанавливаете контекст данных:

transportPanel.DataContext = myCarObject; 

WPF может связывать только свойства, не полей, так что имейте это в виду при разработке вашего Pocos.

+0

Другое относится к вопросу, иногда (почти всегда) Элементы управления XAML вложены. Разве «контекст» сворачивается в самые внутренние элементы управления? –

+1

@SergioTapia: Да. Фактически, общепринятой практикой является установить только DataContext окна на некоторый объект POCO (называемый ViewModel), а затем углубиться в дерево объектов, просто установив DataContext = {{Binding SomePropertyOfTheViewModelReturningAnotherPoco} "на некоторый внутренний элемент управления. – Heinzi

Смежные вопросы