每天进步一点点-WPF-根据数据类型加载控件

时间:2022-02-14 15:09:46

目的,根据数据类型的不同,动态的加载适用于不同数据类型的控件(布局)

原理:为自定义的数据类型添加数据魔板,绑定的时候绑定这些数据类型的实例。

例子:

数据类型:

每天进步一点点-WPF-根据数据类型加载控件

数据模板:

<DataTemplate DataType="{x:Type scparam:ScriptStringParam}">
<ContentControl Height="{Binding ItemHeight}">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Description}" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="5,0"></TextBlock>
<TextBox Grid.Column="1" Text="{Binding Value}" VerticalAlignment="Center" HorizontalAlignment="Stretch" Margin="5,0"></TextBox>
</Grid>
</ContentControl>
</DataTemplate>
  <DataTemplate DataType="{x:Type scparam:ScriptDoubleParam}">
​ .....
</DataTemplate>

Xmal调用集合作为数据源:

后台定义的数据源:

 public List<ScriptParam> ScriptParams
{
get { return _ScriptParams; }
set { _ScriptParams = value; OnPropertyChanged("ScriptParams"); }
}

使用效果:后续补充