【发布时间】:2017-10-31 03:33:24
【问题描述】:
我使用 XAML 开发我的应用程序 UI,并在后台运行一个 C# 程序。
为了更容易解释:假设程序应在 ListView/Grid 中显示参数。
- 第 1 列是参数名称(字符串)
- 第 2 列是参数值(字符串或字符串 [,])
参数值可以是单个值(显示为标签)或向量/矩阵(显示为此单元格内的网格)。我不知道如何在这里添加一个列号未知的其他网格,每个参数的数字都会不同。
所有参数都在一个列表中,并通过 ItemSource + DisplayMemberBinding 动态加载。
所以我需要什么: - DataTemplate 中的网格 - 行数未知的网格
<DataTemplate x:Key="labelTemplate">
<Label Content="{Binding Path=Value}" Width="Auto"></Label>
</DataTemplate>
<DataTemplate x:Key="table2DTemplate">
</DataTemplate>
<local:ParameterTemplateSelector
x:Key="parameterTemplateSelector"
LabelTemplate="{StaticResource labelTemplate}"
Table2DTemplate ="{StaticResource table2DTemplate}"/>
我的数据模板 + 模板选择器:
<ListView ItemsSource="{Binding Parameters}" Margin="10,156,10.286,10.429" x:Name="listBox1" FontSize="8" Background="White" Foreground="Black" BorderBrush="#FF60EFBB">
<ListView.View>
<GridView>
<GridViewColumn
Header="Name"
Width="Auto"
DisplayMemberBinding="{Binding Name}" />
<GridViewColumn
Header="Value"
Width="Auto"
CellTemplateSelector="{StaticResource parameterTemplateSelector}" />
<GridViewColumn
Header="Unit"
Width="Auto"
</GridView>
</ListView.View>
</ListView>
【问题讨论】:
-
嗨,你能告诉我更详细的你的意思吗?
-
WPF 不愿意使用二维(或更多)维数组作为项目源。是否可以将其替换为
List<List<String>>,或者将其转换为显示目的?
标签: c# .net xaml grid datatemplate