如何使用xaml在我的c#应用程序中添加Dynamic combobox

时间:2018-03-15 05:18:23

标签: c# wpf sqlite xaml combobox

假设我想创建一个UI,它应该显示组合框和组合框。其动态来自数据库的项目(枚举值)。

假设我的sqlite数据库就像,

Name           datatype          Values                    IsWizard    Screen
Application     enum       0:first,1:second,3:third           1          1
Demo            enum         0:Hello 1:bye                    1          0

这是我写的代码,

for (int iCount = 0; iCount < ParameterCollection.Count; iCount++)
            {

                objIParameter = ParameterCollection.ElementAt(iCount).Value as IParameter;

                objIParameter.GetColumnValue("Iswizard", out iswizard);
                objIParameter.GetColumnValue("Screen", out screen);
                if (iswizard == 1 && screen == 1)
                {
                    WizardCollection.Add(ParameterCollection.ElementAt(iCount).Key, objIParameter);


                    objIParameter.GetColumnValue(DBEnumName, out enumValues);

                     string[] enumval = enumValues.Split(',');

在此之后如何动态添加组合框,以便只有屏幕== 1的值将在组合框内显示其标签和枚举值

1 个答案:

答案 0 :(得分:0)

我不确定您的数据是如何来自数据库的。但我知道ItemsControl就是你要找的东西。这是这样的:

<Window.Resources>
    <DataTemplate x:Key="ItemTemplate">
        <Border BorderBrush="Black" BorderThickness="0.5" Margin="2">
            <Grid Margin="3">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="1*" />
                    <ColumnDefinition Width="20" />
                    <ColumnDefinition Width="1*" />
                </Grid.ColumnDefinitions>

                <TextBox Grid.Column="0" Text="{Binding Path=Label}" />
                <ComboBox Grid.Column="2"
                      ItemsSource="{Binding Path=EnumCollectionName}"
                      DisplayMemberPath="Name"
                      SelectedValuePath="Value" />
            </Grid>
        </Border>
    </DataTemplate>
</Window.Resources>
<Grid>
    <ItemsControl ItemsSource="{Binding Path=SampleItems}"
              ItemTemplate="{StaticResource ItemTemplate}"
              Margin="10" />
</Grid>

我添加了样本绑定,您必须根据数据结构和属性更改绑定,具体取决于您使用的是MVVM还是后面的代码。但ItemsControl应该可以解决你的问题。