Элемент управления Silverlight для группировки других элементов управления для привязки данных - PullRequest
1 голос
/ 26 июля 2010

Есть ли в silverlight элемент управления для группировки элементов управления для привязки данных. Например, скажем, у меня есть объект Person, и я хочу отобразить fname, lname, age, height и т. Д. В TextBlocks. Есть ли элемент управления, который я могу использовать, чтобы сгруппировать эти элементы управления TextBlock вместе и установить ItemSource именно на этот элемент управления, аналогично тому, как вы устанавливаете ItemSource для DataGrid, а затем связываете каждый столбец?

Ответы [ 4 ]

2 голосов
/ 26 июля 2010

Сгруппируйте TextBlocks в любом элементе макета и свяжите DataContext элемента управления с Person. Если явно не установлено, контекст каждого TextBlock будет относиться к родителю.

<UserControl DataContext="">
    <UserControl.DataContext>
        <SomeViewModel />
    </UserControl.DataContext>
    <Grid DataContext="{Binding ThePerson}">
        <TextBlock Text="{Binding fname}"/>
        <TextBlock Text="{Binding lname}"/>
        <TextBlock Text="{Binding age}"/>
        <TextBlock Text="{Binding height}"/>
    </Grid>
</UserControl>

Просмотр модели класса ...

public class SomeViewModel
{
    public Person ThePerson { get;set; }
}
0 голосов
/ 04 августа 2010

Я думаю, что любой из этих ответов является правильным, однако я не думаю, что он будет работать / подходит для моего приложения. Подход MVVM является чрезмерным для моего приложения, и два других подхода не будут работать для меня по разным причинам. Я просто сделаю все в коде позади.

0 голосов
/ 27 июля 2010

Вы можете использовать элемент управления DataForm и установить для его свойства IsReadOnly значение True, этот элемент управления обычно используется для редактирования данных, и не забудьте установить AutoGenerateFields = "True" ...

PS: я полагаювы используете сервис Ria с silverlight

0 голосов
/ 26 июля 2010

Возможно, вы захотите прочитать эту статью в MVVM http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

Похоже, вам нужно создать «PersonView» и «PersonViewModel» (и, вероятно, «PersonCollectionViewModel»). Это позволит вампривяжите элементы управления вашего «PersonView» (пользовательский элемент управления Silverlight) к «PersonViewModel».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...