这是我的代码隐藏
public ObservableCollection<BuddyConnectFriendService.FriendStructure>
FriendList { get; set; } // I want to bind this to my listbox
public Friends() //this is constructor
{
InitializeComponent();
this.DataContext = this; //I think this is what I'm doing is right....:)
}
<ListBox Height="523" HorizontalAlignment="Left" Margin="0,6,0,0" Name="friendListBox" VerticalAlignment="Top" Width="450">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Name="friendListboxDataItemStackPanel" Orientation="Vertical">
<TextBlock Name="friendUsername" FontSize="28" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
如何将FriendList
绑定到ListBox
? FriendList
的属性为user.UserName
,我想在TextBlock“friendUsername”中显示它。
答案 0 :(得分:4)
我会像这样更改构造函数:
public Friends() //this is constructor
{
InitializeComponent();
this.DataContext = this.FriendList;
}
使用像这样的DataTemplate:
<ListBox ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
...
<TextBlock Text="{Binding user.UserName}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
答案 1 :(得分:0)
Erno的回答很好而且有效。还有另一种方法可以使用您的方法来获取它。
如果你给了Page / UserControl一个名字(即在根元素中,给它一个Name =“MyPage”属性)。
然后你可以这样做:
<ListBox ItemsSource="{Binding MyPage.FriendList}">
应该有用。
但是,我会将您的FriendList属性放入ViewModel,并将该视图模型用作Page / UserControl的DataContext