【问题标题】:Silverlight 3 Binding to the Current Item in a CollectionSilverlight 3 绑定到集合中的当前项
【发布时间】:2011-02-04 03:39:27
【问题描述】:
绑定语法 {Binding /} 在 WPF 中有效,但在 Silverlight 3 中根本无效:
<ContentControl Content="{Binding MyCollection}">
<ContentControl.ContentTemplate>
<DataTemplate>
<ContentControl Content="{Binding /}" />
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
在 Silverlight 中解决此问题的方法是什么?
【问题讨论】:
标签:
wpf
silverlight
binding
silverlight-4.0
silverlight-3.0
【解决方案1】:
当绑定到 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}" />
【解决方案2】:
我想你想要{Binding} 或{Binding .},两者都做同样的事情。