это, вероятно, покажется глупым вопросом, но, пожалуйста, потерпите меня, поскольку я очень плохо знаком с WPF, пользовательский интерфейс, к сожалению, не является моей основной областью навыков, и поэтому я изо всех сил пытаюсь разобраться с концепциями WPF .
У меня есть пользовательский элемент управления, который содержит панель закрепления, которая затем содержит древовидное представление, древовидное представление связывается с использованием Иерархического шаблона данных, который прекрасно работает, все элементы и вспомогательные элементы управления связаны, и я рад с грубым результатом макета. Однако я хотел добавить кнопку под последним связанным элементом представления дерева.
В основном это то, что я пытаюсь достичь:
На данный момент у меня есть панель внутри панели док-станции, которая имеет две строки, одну для дерева и кнопку для кнопки, но, очевидно, кнопка не является частью дерева, я хочу, чтобы она находилась в области прокрутки вида дерева, поэтому он отображается как часть его и появляется только после последнего элемента.
Вот мой текущий XAML:
<DockPanel>
<Grid Width="Auto" Height="Auto">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="23"/>
</Grid.RowDefinitions>
<TreeView ItemsSource="{Binding Path=Steps}" FontFamily="Calibri" FontSize="14" DataContext="{Binding}" Grid.Row="0">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}"/>
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}"/>
<Setter Property="FontWeight" Value="Normal"/>
<Setter Property="Margin" Value="20,20,0,0"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="FontWeight" Value="Bold"/>
</Trigger>
</Style.Triggers>
</Style>
</TreeView.ItemContainerStyle>
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:StepViewModel}" ItemsSource="{Binding Segments}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}" />
</StackPanel>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type local:SegmentViewModel}">
<DockPanel HorizontalAlignment="Stretch" >
<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
<myUserControl:SegmentLayout HorizontalAlignment="Stretch"/>
<TextBlock Text="{Binding Value}"/>
</StackPanel>
</DockPanel>
</DataTemplate>
</TreeView.Resources>
</TreeView>
<Button HorizontalAlignment="Left" Content="Add Step" Name="addStepButton" Height="23" Width="103" Grid.Row="1"/>
</Grid>
Да, и прежде чем вы спросите, да, я в основном разрываю конструктор рабочих процессов SharePoint, это для внутреннего инструмента, и по какой-то причине мне нужно написать облегченный движок рабочих процессов, который уже готов, и конструктор для него в WPF, который выглядит очень похоже на SP. Я не принимаю бизнес-решений, просто обезьяна кода;).
Большое спасибо
Пол