我的silverlight用户控件中有一个列表框,我用一个私有类的通用列表填充它,由于某种原因它不是数据绑定。
以下是代码:
class userClient
{
public int characterID { get; set; }
public string characterName { get; set; }
}
List<userClient> userClientList; // = new List<userClient>();
void _client_UserList(object sender, DataTransferEventArgs e)
{
this.Dispatcher.BeginInvoke(() =>
{
userClientList = new List<userClient>();
foreach (string user in e.DataTransfer.Data)
{
var userDetailsArray = user.Split('+');
userClient uc = new userClient
{
characterID = Convert.ToInt32(userDetailsArray[0]),
characterName = userDetailsArray[1]
};
userClientList.Add(uc);
}
chatUsers.ItemsSource = userClientList;
chatUsers.DisplayMemberPath = "characterName";
});
}
我检查了通用列表userClientList
,它正在填满,所以没有问题。
这是列表框的XAML:
<ListBox x:Name="chatUsers" Grid.Row="0" Grid.Column="1" Margin="2 2 2 2" />
答案 0 :(得分:5)
您是否在Visual Studio的输出窗口中记录了任何绑定错误消息?
编辑:
注意到你的收藏是一个字段,而它应该是公共财产
public ObservableCollection<userClient> userClientList { get; set; }
答案 1 :(得分:0)
谢谢!谢谢Mokosh!错误 - System.Windows.Data错误:39:BindingExpression路径错误 - 通过两本WPF书籍让我发疯,却没有找到你强调的答案 - 我没有在班级成员上创建属性。