目的,根据数据类型的不同,动态的加载适用于不同数据类型的控件(布局)
原理:为自定义的数据类型添加数据魔板,绑定的时候绑定这些数据类型的实例。
例子:
数据类型:
数据模板:
<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"); }
}
使用效果:后续补充