Привязка Silverlight 3 к текущему предмету в коллекции - PullRequest
2 голосов
/ 04 апреля 2010

Синтаксис привязки, {Binding /}, работает в WPF, но не работает вообще в Silverlight 3:

<ContentControl Content="{Binding MyCollection}">
    <ContentControl.ContentTemplate>
        <DataTemplate>
            <ContentControl Content="{Binding /}" />
        </DataTemplate>
    </ContentControl.ContentTemplate>
</ContentControl>

Как это сделать в Silverlight?

Ответы [ 2 ]

4 голосов
/ 06 апреля 2010

При связывании с коллекцией в WPF вы фактически привязываетесь к чему-то, что понимает понятие «Текущий элемент».

Однако в Silverlight то, к чему вы привязаны, не имеет этой концепции. Так что вам нужно сделать это самостоятельно.

Например, в приложении MVVM выставьте свойство.

<ListBox SelectedItem="{Binding MyCurrentItem}" 
         ItemsSource="{Binding MyCollection}"/>
<ContentControl Content="{Binding MyCurrentItem}" />

или сделать привязку какого-либо элемента

<ListBox x:Name="listBox" 
         ItemsSource="{Binding MyCollection}"/>
<ContentControl Content="{Binding SelectedItem, ElementName=listBox}" />
4 голосов
/ 04 апреля 2010

Я думаю, вы хотите {Binding} или {Binding .}, каждый из которых делает то же самое.

...