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); }
}
问问题
509 次
1 回答
1
这可能不是答案,但您的代码存在根本性错误。
您将 ListBox 的ItemSource
属性绑定到一个属性Emp
。然后在 Click 处理程序中,将类型对象添加到ListBoxEmp
的属性中。Items
这行不通。
为了使它与绑定一起工作,必须有EmpList
某种可枚举类型的属性,最好是ObservableCollection。绑定还需要知道定义此属性的(模型)对象。因此,您必须设置 ListBox 的DataContext或指定绑定的Source。
当您将元素添加到数据绑定 ListBox 时,您不会将它们添加到 中Items
,而是将它们添加到绑定的源属性中,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);
}
于 2012-08-03T10:01:32.470 回答