相同" ItemsSource"对于UserControl中的每个组合框

时间:2018-05-16 10:13:25

标签: c# xaml

我在窗口/ userControl中有几个组合框。我从父设置ItemsSource,但只指定组合框的名称。 由于我不想为每个人做这件事(因为我无法重复组合框名称),我如何在这个userControl中为所有项目(本例中为Combobox)实现这个?

在后面的UserControl代码中

iterrows()

在mainWindow CS中

    public object multiSwitchListDataContext {
        get { return multiSwitchCombobox.DataContext; }
        set
        {
            multiSwitchCombobox.DataContext = value; 
            multiSwitchCombobox.ItemsSource = value;
            NotifyPropertyChanged();
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

在userControl xaml

    (myUserControl).multiSwitchListDataContext = multiSwitchList;

1 个答案:

答案 0 :(得分:0)

我无法为您当前的问题提供完整的答案,因为没有足够的信息/代码来提供,但以下示例应该有助于您对其进行排序。

MainWindow.xaml

<ComboBox ItemsSource="{Binding MyList}"/>

MainWindow.xaml.cs

public MainWindow()
{
    InitializeComponent();

    // Very important to get the binding working.
    this.DataContext = this;
}

// The property to bind to, you should choose a better type than object.
public IList<object> MyList
{
    get { return (IList<object>)GetValue(MyListProperty); }
    set { SetValue(MyListProperty, value); }
}

public static readonly DependencyProperty MyListProperty =
        DependencyProperty.Register("MyList", typeof(IList<object>), typeof(MainWindow), new PropertyMetadata(null));

然后,您应该通过在代码中设置MyList属性来查找它将使用MyList中的值填充ComboBox