0
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); }
    }
4

1 回答 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 回答