WPF将静态列表绑定到组合框

时间:2014-02-19 20:19:46

标签: wpf binding combobox

尝试了解如何将此静态列表绑定到位于不同窗口的组合框。

public partial class MainWindow : Window
{

    public static List<Classes.Entity> EntityList { get; set; }

    public MainWindow()
    {
        EntityList = new List<Classes.Entity>();    
        InitializeComponent();   
    }
    ...

对象:

 public class Entity
{
    public string entityName { get; set; }
 ...

XAML(在不同的窗口中,调用“NewRelationship.xaml.cs”

<ComboBox x:Name="cb_from" ItemsSource="{Binding Path=EntityList}" DisplayMemberPath="entityName" SelectedValue="{Binding Path=Entity}"  />

当然我稍后会在代码中填写列表...... 如果我将列表移动到newRelationship窗口并添加“this.datacontext = this;”它的工作, 当列表在mainWindow中时,如何使这项工作?感谢...

1 个答案:

答案 0 :(得分:1)

更好的方法是将EntityList保存在两个窗口都可以引用的单独对象中:

class ViewModel
{
    private List<Classes.Entity> _entityList = new List<Classes.Entity>();
    public IEnumerable<Classes.Entity> EntityList
    {
        get { return _entityList; }
    }
}

partial class MainWindow
{
    public MainWindow()
    {
        InitializeComponent();
        this.DataContext = new ViewModel();
    }
}

创建第二个窗口时,您可以将ViewModel类的实例传递给它,并将其设置为DataContext