【发布时间】:2020-05-14 01:04:37
【问题描述】:
我有一个树视图,它有一个可以扩展其内容的切换按钮。当我这样做时,由于切换扩展宽度,每一列都离我想要的位置太远了。我想覆盖该行为,但我不知道如何,我知道这与定义 TreeView 的控件模板有关?
这是我的代码
c#
Class MyList
{
double someDouble;
double somestring;
souble anotherString;
bool thisOnesABool;
}
Class MyContainer
{
string headerText1;
string headerText2;
List<MyList> SomeList;
}
List<MyContainer> SomeContainerInCodeBehind = new List<MyContainer>();
WPF
<UserControl.Resources>
<DataTemplate x:Key="level2">
<Grid>
//the content of 'MyList'
</Grid>
</DataTemplate>
<HierarchicalDataTemplate x:Key="level1"
ItemsSource="{Binding SomeListWithinContainer}"
ItemTemplate="{StaticResource level2}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<TextBox Grid.Column="0" Text="{Binding HeaderText}" />
<TextBox Grid.Column="1" Text="{Binding MoreHeaderText}" />
</Grid>
</HierarchicalDataTemplate>
</UserControl.Resources>
<Grid>
<TreeView Name="TheTreeView"
Grid.Row="1"
ItemTemplate="{StaticResource level1}"
ItemsSource="{Binding SomeContainerInCodeBehind}">
</TreeView>
</Grid>
【问题讨论】:
-
你能至少添加一个截图吗? “每一列都离我想要的位置太远了”-“太远”和“我想要的位置”是 100% 主观的
-
列的位置不重要,我设置它的能力很重要。我只想知道如何定义扩展器的行为。
-
我不明白你想要达到什么目的