2012-01-13 6 views
0

コンボボックスにリストの代わりにデータグリッドを表示させる方法の簡単な例はありますか?私はSOとgoogleを試していましたが、データグリッドにコンボボックスを配置する方法を示す結果が得られました。データグリッドをコンボボックスに入れる簡単な方法はありますか?

+0

あなたは、データグリッドのフィールドの1つとしてコンボボックスショーを開催していますか?あなたの質問がタイプミスであったかどうかは確かではありません。 – MethodMan

+0

これを行うことで何を目指していますか? –

+0

なぜデータグリッドをコンボボックスに入れたいのですか?それはちょっと奇妙に聞こえるから。 – ppiotrowicz

答えて

1

確かに可能です。それはWPFの威力です。

Thisリンクの仕方を説明しています。

+1

あなたの答えがそれ自身で立つことができるように要約を提供しない限り、またはそれが特定の技術の公式文書にある場合以外は、サイト外でのリンクは避けてください。リンク死ぬ... –

2

最初の質問に答えるには、「リストの代わりにコンボボックスにデータグリッドを表示する方法の簡単な例はありますか?非常にストレート: - 答えはノーです。

は、 DataGrid(つまり列を含むリスト)のようなものを達成するために、いくつかの異なる方法があります。

データグリッドのようになります。何かを偽造して、非常に簡単なサンプルあなたはまた、その結果、すべての項目accross列幅を同期させるためにSharedSizeGroup(およびGrid.IsSharedSizeScope)を使用することができますコンボボックスの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> 

を変更することができ動的で整列したレイアウト。

+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> 

それはもちろんの唯一の例だと、それが自動ポップアップの隠蔽などのいくつかの機能が欠けています:たぶん、あなたはこのようにそれを行うことができます。しかし、あなたはポイントを得る。

+0

これの大きな利点は、あなたがテンプレートでDataGridを使用するつもりはないという事実です。これはバインディングを少し簡略化します。 – ppiotrowicz

関連する問題