Есть ли простой способ поместить сетку данных в комбинированный список? - PullRequest
0 голосов
/ 14 января 2012

Есть ли простой пример того, как в поле со списком показывать сетку данных вместо списка? Я пытался ТАК и Google, но продолжал получать результаты, которые показывают, как поместить комбинированный список в сетку данных.

Ответы [ 3 ]

2 голосов
/ 14 января 2012

Чтобы ответить на ваш первый вопрос: «Есть ли простой пример того, как в поле со списком показывать сетку данных вместо списка?» очень прямо: - ответ нет.

Тем не менее, есть несколько различных способов сделать что-то, что выглядит как DataGrid (то есть список со столбцами).

Очень простой пример с подделкой чего-либо, похожего на сетку данных, мог бы изменить ItemTemplate в поле со списком

<ComboBox x:Name="cb" ItemsSource="{Binding Persons}">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="50" />
                    <ColumnDefinition Width="50" />
                </Grid.ColumnDefinitions>
                <TextBlock Grid.Column="0" Text="{Binding Name}" />
                <TextBlock Grid.Column="1" Text="{Binding Age}" />
            </Grid>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

Вы также можете использовать SharedSizeGroupGrid.IsSharedSizeScope) для синхронизации ширины столбцов по всем элементам, что приводит к динамическому и выровненному макету.

1 голос
/ 14 января 2012

Это наверняка возможно.Это сила WPF.

Эта ссылка объясняет, как это сделать.

0 голосов
/ 14 января 2012

Как я уже сказал, для меня странно использовать ComboBox. Может быть, вы можете сделать это так:

 <ToggleButton x:Name="Toggle" Width="200" Height="30" HorizontalAlignment="Center" VerticalAlignment="Top" />
    <Popup IsOpen="{Binding ElementName=Toggle, Path=IsChecked}" PlacementTarget="{Binding ElementName=Toggle}" Placement="Bottom" Width="{Binding ElementName=Toggle, Path=Width}">
        <DataGrid>
            <DataGrid.Columns>
                <DataGridTextColumn Header="Test1" />
                <DataGridTextColumn Header="Test2" />
            </DataGrid.Columns>
        </DataGrid>
    </Popup>

Это только пример, и в нем отсутствуют некоторые функции, такие как автоматическое скрытие всплывающих окон. Но вы поняли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...