WPF - 如何基于ComboBox的SelectedIndex显示不同的控件

时间:2016-01-27 20:27:00

标签: c# wpf combobox user-controls

我还不知道所有技术术语,但我会尽力以最好的方式解释我的问题。

我的程序由Main Window组成,其中定义了变量。我想使用ComboBoxComboBoxItemComboBoxItem。对于每个ComboBox,我希望在ComboBoxItem下面打开一个新部分,在此部分中输入将继续获得我想要的最后一个值。有关信息,只有一个UserControl有效。

我已尝试在StackPanel ComboBox下的Main Window中尝试 var definition = new Index() { Name = indexname, Fields = new[] { new Field("id", DataType.String) { IsKey = true }, new Field("objectType", DataType.String) { IsSearchable = false, IsFilterable = true, IsRetrievable = true }, new Field("referenceId", DataType.Int32) { IsSearchable = false, IsFilterable = false, IsRetrievable = true }, new Field("name", DataType.String) { IsSearchable = false, IsFilterable = false, IsRetrievable = true }, new Field("tags", DataType.Collection(DataType.String)) { IsSearchable = true, IsFilterable = false, IsSortable = false, IsFacetable = true, IsRetrievable = true }, }, }; ,但我想在此输入行定义和列定义部分,我无法在usercontrol窗口中执行此操作。

任何人都可以指导我,我可以阅读这个方法的主题吗?

1 个答案:

答案 0 :(得分:1)

让我看看我是否正确...你想要显示一个不同的Content deppending,用户选择ComboBoxItem?如果是这种情况,您只需要创建一个x个页面(其中x是不同选项的数量)并且Frame位于ComboBox以下{ {1}}。在这些页面中,您可以放置​​任何内容:从DataGrid到简单Label。然后,您需要做的就是每次Content SelectedIndex事件被触发时,根据ComboBox,将框架SelectedIndexChanged设置为其中一个页面。

以下是一个例子:

public void MyComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
    switch(MyComboBox.SelectedIndex)
    {
        case 0:
            MyFrame.Content = new MyPage1();
            break;
        case 1:
            MyFrame.Content = new MyPage2();
            break;
    }
}