假设我想创建一个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的值将在组合框内显示其标签和枚举值
答案 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应该可以解决你的问题。