Навигация в страничном приложении WPF

393
12 июня 2017, 20:02

Здравствуйте! У меня есть страничное приложение WPF, навигация в котором организована в виде бокового меню, основанного на TreeView. В каждом TreeViewItem.Tag содержится Frame, привязанный к странице. Привожу фрагмент разметки:

<TreeView x:Name="tvSections"  Margin="0,0,0,0" Grid.ColumnSpan="2"  Background="LightSteelBlue" BorderBrush="{x:Null}" >
        <TreeViewItem Header="Главная форма" IsSelected="True" IsExpanded="True" Cursor="Hand" FontSize="16">
            <TreeViewItem.Tag>
                <Frame Name="frame16" Margin="0,0,0,0" Source="Page_void.xaml" />
            </TreeViewItem.Tag>
            <TreeViewItem Header="Клиенты" IsExpanded="True"   Cursor="Hand" FontSize="16" > // тут проблема
                <TreeViewItem.Tag>
                    <Frame Name="frame17" Margin="0,0,0,0" Source="Page2.xaml" />
                </TreeViewItem.Tag>
                <TreeViewItem Header="Данные" Cursor="Hand">
                    <TreeViewItem.Tag>
                        <Frame Name="frame2" Margin="0,0,0,0" Source="Page2.xaml" />
                    </TreeViewItem.Tag>
                </TreeViewItem>
                <TreeViewItem Header="Записи" Cursor="Hand">
                    <TreeViewItem.Tag>
                        <Frame Name="frame7" Margin="0,0,0,0" Source="Page7.xaml" />
                    </TreeViewItem.Tag>
                </TreeViewItem>
            </TreeViewItem>
            <TreeViewItem Header="Договора" IsExpanded="True" Cursor="Hand" FontSize="16" >
                <TreeViewItem.Tag>
                    <Frame Name="frame18" Margin="0,0,0,0" Source="Page10.xaml" />// и тут проблема
                </TreeViewItem.Tag>
                <TreeViewItem Header="Абонементы" Cursor="Hand">
                    <TreeViewItem.Tag>
                        <Frame Name="frame10" Margin="0,0,0,0" Source="Page10.xaml" />
                    </TreeViewItem.Tag>
                </TreeViewItem>
                <TreeViewItem Header="Услуги" Cursor="Hand">
                    <TreeViewItem.Tag>
                        <Frame Name="frame9" Margin="0,0,0,0" Source="Page9.xaml" />
                    </TreeViewItem.Tag>
                </TreeViewItem>
            </TreeViewItem>

Необходимо сделать так, чтобы при клике пользователя на узлы дерева (Клиенты, Договора), они разворачивались/сворачивались, но отображаемая страница оставалась прежней. При выборе остальных TreeViewItem страница должна меняться на заданную в привязанном к нему Frame. Сейчас в проблемных местах у меня привязаны страницы, так как без них окно область tvSections становится совершенно пустой. Возможно ли реализовать задуманный план и как это сделать?

Answer 1

Подпишись на обработку событий разворачивания и в обработчике установи e.Handled = true;

READ ALSO
Как на C# скачать новую версию программы с GitHub?

Как на C# скачать новую версию программы с GitHub?

Нужно автоматизировать обновление кода на сервере, что б я изменял код у себя на компьютере, затем залил на GitHub, а затем подал команду серверу...

366
Помогите дописать запрос LINQ

Помогите дописать запрос LINQ

Если я правильно понял вопрос, то вам должно подойти такое:

244
Почему не работает БД в Build Unity?

Почему не работает БД в Build Unity?

В программе все работает хорошо, данные отправляются отправляются, но в Build перестает работатьПочему так происходит, как исправить? ошибок...

243