我有一个项目: 原样:我正在生成基于DataTemplate的ListBox,来自ObservableCollection的数据(使用绑定属性) - 这很好。它只包含带有Name的texdtBlock和带有值的TextBox(双向绑定)。
要:我想根据值的类型为值生成动态类型的字段。值可以是字符串 - TextBox,int - TextBox(理想情况是检查用户是否只使用数字),double和bool - CheckBox。
这是我的XAML:
<ListBox x:Name="ListBox1">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="200"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Name}" Margin="2" Grid.Column="0"/>
<TextBox Text="{Binding Value, Mode=TwoWay}" Margin="2" Grid.Column="1" IsEnabled="{Binding IsLocked}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
这里有C#代码:
InitializeComponent();
DataContext = this;
ListBox1.ItemsSource = valuesList;
虽然valuesList包含具有以下内容的对象: 字符串名称; 字符串值; (必须解析) 字符串类型; (后来的枚举)
请问一下如何生成这种XAML的一些提示?我的意思是可以使用绑定来做到这一点,或者我应该在后面的代码中创建“ListBoxRow”或者用它来填充列表框?我想要一个更清洁的解决方案。这样,我认为我不会使用绑定,可能需要大量的代码才能完成。
提前致谢。