Silverlight将绑定添加到控件

|
public class Person

    {

    private int _Id;
    public int Id{get{return value;} set{_Id=value;}}

    private string _Code
    public  string Code{get{return _Code;} set {_Code=value;}}

    private string _Name;
    public string Name{get{return _Name;}set{_Name=value;}}

    } 
这是我的模特班 我的窗体中有两个Combobox.Combo1和Combo2。 Combo1 DisplayMember代码值Member ID Combo2 DisplayMember名称ValueMember ID 我想当我更改代码或命名另一个组合框编辑值并更改显示值时     
已邀请:
        我建议进行一些更改: 首先,您可能需要将您的人员类别分为两类:代码和人员
public class Person
{
    public int Id { get; set; }
    public int CodeId { get; set; }
    public string Name { get; set; }
}

public class Code
{
    public int Id { get; set; }
    public string CodeText { get; set; }
}
然后创建一个您将设置为视图的数据上下文的类,通常在MVVM设计模式中称为视图模型:
public class Data : INotifyPropertyChanged
{
    public List<Person> People { get; set; }
    public List<Code> Codes { get; set; }

    private Code _selectedCode;
    public Code SelectedCode
    {
        get
        {
            return _selectedCode;
        }
        set
        {
            _selectedCode = value;
            PropertyChanged(this, new PropertyChangedEventArgs(\"SelectedCode\"));
            SelectedPeople = People.Where(p => p.CodeId == SelectedCode.Id).ToList();
        }
    }

    private List<Person> _selectedPeople;
    public List<Person> SelectedPeople
    {
        get
        {
            return _selectedPeople;
        }
        set
        {
            _selectedPeople = value;
            PropertyChanged(this, new PropertyChangedEventArgs(\"SelectedPeople\"));
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
}
请注意,它实现了INotifyPropertyChanged。这对于在Silverlight中进行绑定至关重要。在MainPage.xaml.cs的构造函数中:
Data data = new Data
    {
        Codes = new List<Code>(),// populate your codes

        People = new List<Person>() // populate your people, giving them correct codeids
    }

this.DataContext = data;
现在,您认为是XAMl:
<ComboBox Height=\"23\" HorizontalAlignment=\"Left\" Margin=\"12,12,0,0\" Name=\"comboBox1\" VerticalAlignment=\"Top\" Width=\"120\" ItemsSource=\"{Binding Codes}\" SelectedItem=\"{Binding SelectedCode, Mode=TwoWay}\" DisplayMemberPath=\"CodeText\" />
<ComboBox Height=\"23\" HorizontalAlignment=\"Left\" Margin=\"12,54,0,0\" Name=\"comboBox2\" VerticalAlignment=\"Top\" Width=\"120\" ItemsSource=\"{Binding SelectedPeople}\" DisplayMemberPath=\"Name\" />
请注意,第一个组合框绑定到DataContext上的Codes集合。 selectedItem属性TWO-WAY绑定到数据上下文上的SelectedCode属性。当用户更改所选项目时,将调用数据上下文中的设置器。我们更新了要显示的人物列表,并引发了PropertyChanged事件,该事件通知视图它需要更新人员框。 当然,如果正确实现了MVVM设计模式,这将更加清洁。我喜欢为此使用MVVM Light工具包。 我知道这很困难,但是我想引导您走上正确的道路,以便您可以在此项目中以及将来使用此知识:)     

要回复问题请先登录注册