我的问题是我不知道如何从 CModul 绑定两个 List 的 CModul_I_O(Inputs,outputs)。我用 HierarchicalDataTemplate 和 datatemplates 尝试了很多方法,但我总是只能绑定这两个列表中的一个。它还仅显示第一个 CModul 的列表。
我需要一个看起来像这样的 TreeView
-Modul1
-Inputs
input1
input2
input3
-outputs
output1
output2
output3
-Modul2
-Inputs
input1
input2
input3
-outputs
output1
output2
output3
我的 2 数据类
public class CModul
{
protected string sName, sKlasse;
protected List<CModul_I_O> lInputs,lOutputs;
public CModul()
{
sName = "";
sKlasse = "";
lInputs = new List<CModul_I_O>();
lOutputs = new List<CModul_I_O>();
}
public string Name
{
get { return sName; }
set { sName = value; }
}
...
public List<CModul_I_O> Inputs
{
get { return lInputs; }
set { lInputs = value; }
}
public List<CModul_I_O> Outputs
{
get { return lOutputs; }
set { lOutputs = value; }
}
}
public class CModul_I_O
{
string sName, sVar, sKommentar;
public CModul_I_O()
{
sName="";
sVar="";
sKommentar="";
}
public string Name
{
get { return sName; }
set { sName = value; }
}
....
}
List<CModul> lModule = new List<CModul>();
我有的xml代码
<Window.Resources>
<DataTemplate x:Key="module" DataType="{x:Type local:CModul_I_O}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150"></ColumnDefinition>
<ColumnDefinition Width="150"></ColumnDefinition>
<ColumnDefinition Width="150"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBox Grid.Column="0" Margin="5" Text="{Binding Path=Name}"></TextBox>
<TextBox Grid.Column="1" Margin="5" Text="{Binding Path=Kommentar}"></TextBox>
<TextBox Grid.Column="1" Margin="5" Text="{Binding Path=Var}"></TextBox>
</Grid>
</DataTemplate>
</Window.Resources>
<Grid>
<TreeView Name="TV_ModulListe" Grid.Row="0">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:CModul}" ItemsSource="{Binding Inputs}" ItemTemplate="{StaticResource module}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150"></ColumnDefinition>
<ColumnDefinition Width="150"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBox Grid.Column="0" Margin="5" Text="{Binding Path=Name}"></TextBox>
<TextBox Grid.Column="1" Margin="5" Text="{Binding Path=Klasse}"></TextBox>
</Grid>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
</Grid>