2012-01-13 2 views
0

Есть ли простой пример того, как показать combobox вместо datagrid вместо списка? Я пытался использовать SO и google, но продолжал получать результаты, которые показывают, как поместить combobox в datagrid.Есть ли простой способ поместить datagrid в combobox?

+0

Вы говорите о том, что вы видите combobox как одно из полей в datagrid ..? если так, то это будет на уровне шаблона. Не уверен, что ваш вопрос был опечаткой или нет. – MethodMan

+0

Что вы хотите достичь, сделав это? –

+0

Почему вы хотите иметь сетку данных в combobox? Потому что это звучит странно. – ppiotrowicz

ответ

1

Это точно. Это мощность WPF.

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

+1

Пожалуйста, не связывайтесь с сайтом, если вы не предоставите резюме, чтобы ваш ответ мог стоять сам по себе или если он относится к официальной документации данной технологии. Ссылки die ... –

2

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

При этом существует несколько способов сделать что-то, что выглядит как DataGrid (т.е. список со столбцами).

Очень простой пример с притворяется что-то, что может выглядеть как 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) для синхронизации ширины столбцов accross все элементы, приводящие к динамическая и выровненная компоновка.

+0

Это может решить мою проблему. –

+0

Я рад, если он сработает для вас! – ThomasAndersson

+0

DataGrid в любом случае будет излишним, поскольку это, как правило, не только для отображения данных, но и для редактирования и добавления. –

0

Как я уже сказал, для меня странно использовать 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> 

Это всего лишь пример, конечно, и это не хватает несколько функций, таких как автоматические Popup бегов. Но вы понимаете.

+0

Большое преимущество этого также в том, что вы не собираетесь использовать datagrid в шаблоне, что немного упростит привязки. – ppiotrowicz

Смежные вопросы