public class Emp
{
public string Id { get; set; }
}
I declared the class like this, but property i didnt set. I set the dependency property for textblock
public static readonly DependencyProperty LabelProperty
= DependencyProperty.Register("TextBlock", typeof(string), typeof(WindowsPhoneControl1), new PropertyMetadata(new PropertyChangedCallback(LabelChanged)));
public string List
{
get { return (string)GetValue(LabelProperty); }
set { SetValue(LabelProperty, value); }
}
答案 0 :(得分:1)
这可能不是答案,但您的代码存在根本性的错误。
将ListBox的ItemSource
属性绑定到属性Emp
。然后在Click处理程序中,将类型为Emp
的对象添加到ListBox的Items
属性中。这不起作用。
为了使其与绑定一起使用,必须有一些可枚举类型的属性EmpList
,最好是ObservableCollection。绑定还需要知道定义此属性的(模型)对象。因此,您必须设置ListBox的DataContext或指定绑定的Source。
向数据绑定ListBox添加元素时,不要将它们添加到Items
,而是添加到绑定的source属性EmpList
。
public class Model
{
private ICollection<Emp> empList = new ObservableCollection<Emp>();
public ICollection<Emp> EmpList { get { return empList; }}
}
这样绑定:
<ListBox ItemsSource="{Binding EmpList, Source={ an instance of Model }}" ... />
或者如下所示
<ListBox Name="listBox" ItemsSource="{Binding EmpList}" ... />
并设置DataContext,可能在代码中:
listBox.DataContext = model; // where model is an instance of class Model
for (int i = 0; i < result.Length; i++)
{
Emp data = new Emp { Id = result[i] };
model.EmpList.Add(data);
}