подобная доступу навигация по данным в WPF? - PullRequest
1 голос
/ 19 июня 2009

Каков наилучший способ построения навигации по данным, как в формах доступа в XAML / C #?

Должен ли я создать пользовательский элемент управления (или даже пользовательский элемент управления), который я просто привязываю к своей коллекции, в которую я могу поместить другие элементы управления? (отсюда и такой вопрос: Пользовательский элемент управления C #, который может содержать другие элементы управления (при его использовании) )

Или я могу что-то построить, наследуя каким-то образом ItemsControl? как?

Или это будет сделано сегодня совершенно иначе (например, «этот стиль навигации такой же, как в прошлом году!»)?

Я относительно новичок в C #, и все (не программирование как таковое, но с более похожим на "домохозяйка языком" Access-VBA) также я не носитель английского языка. Так что будьте нежны =)

Ответы [ 2 ]

1 голос
/ 19 июня 2009

Вы можете создать пользовательский элемент управления и поместить в него группу кнопок («Первая», «Предыдущая», «Следующая», «Последняя» и т. Д.) И поместить их в главное окно. Во-вторых, вы можете привязать свой пользовательский элемент управления навигацией к данным к CollectionViewSource, который поможет вам перемещаться по вашим данным.

Ваше главное окно:

<Window.Resources>
    <CollectionViewSource x:Key="items" Source="{Binding}" />
</Window.Resources>
<Grid>
    <WpfApplication1:DataNavigation DataContext="{Binding Source={StaticResource items}}" />
    <StackPanel>
        <TextBox Text="{Binding Source={StaticResource items},Path=Name}" />
    </StackPanel>
</Grid>

Пользовательский контроль ваших данных:

<StackPanel>
    <Button x:Name="Prev" Click="Prev_Click">&lt;</Button>
    <Button x:Name="Next" Click="Next_Click">&gt;</Button>
    <!-- and so on -->
</StackPanel>

А ваши обработчики кликов выглядят так:

private void Prev_Click(object sender, RoutedEventArgs e)
{
    ICollectionView view = CollectionViewSource.GetDefaultView(DataContext);
    if (view != null)
    {
        view.MoveCurrentToPrevious();
    }
}

Надеюсь, это поможет.

0 голосов
/ 19 июня 2009

Похоже, что вы после элемента управления DataGrid. Microsoft выпускает WPF DataGrid как часть WPF Toolkit, который вы можете скачать здесь: http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=25047.

...