这就是我在做的事。
UserControl.xaml
<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}">
<phone:LongListSelector
Name="MainList"
ItemsSource="{Binding}">
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<StackPanel>
<views:PostView
DataContext="{Binding ElementName=MainList, Path=ItemsSource}">
</views:PostView>
</StackPanel>
</DataPanel>
我希望PostView
内的控件与Current ItemsSource元素的属性绑定。但是发生的事情是,我将List of 5对象设置为ItemsSource,我Post
视图中的每个元素都获得5个值。
所以我初始化了25个PostView,每个ItemsSource对象5个,而不是1个。
这是我的PostView.xaml
有帮助吗
PostView.xaml
<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneBackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<ItemsControl
ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=User.Username, Mode=OneWay}" />
</StackPanel>
User是我绑定的模型中的Object属性。 我该如何解决?
答案 0 :(得分:2)
您将用户控件绑定到整个集合,而不是仅绑定一个项目。相反,如果DataContext="{Binding ElementName=MainList, Path=ItemsSource}"
只使用DataContext="{Binding ElementName=MainList, Path=SelectedItem}"
或DataContext="{Binding}"
应该有用。
答案 1 :(得分:1)
从this post获取帮助,为PostView.xaml.cs
中的数据设置相关性字段,并从UserControl.xaml