2012-01-05 23 views
0

私は、WPFでDatagridドロップダウンを使ってComboBoxを作成しようとしています。コードをプログラムで実行し、コードビハインドに含める必要があります。WPFでDataGridドロップダウンを使用してComboBoxを作成する方法?

は、ここで私はこれまで持っているものです:

     Dim cb As New ComboBox 
         Dim dg As New DataGrid 

         dg.AutoGenerateColumns = False 

         dg.ItemsSource = clnObjects 

         Dim col_name As New DataGridTextColumn 
         col_name.Header = "Name" 
         col_name.Binding = New Binding("Name") 
         col_name.CanUserSort = False 
         col_name.CanUserResize = False 

         dg.Columns.Add(col_name) 

         Dim col_startdate As New DataGridTextColumn 
         col_startdate.Header = "Start Date" 
         col_startdate.Binding = New Binding("StartDate") 
         col_startdate.CanUserSort = False 
         col_startdate.CanUserResize = False 

         dg.Columns.Add(col_startdate) 

         cb.Items.Add(dg) 

このコードは、2つの列を持つデータグリッドを含んでおり、罰金を見ているようだコンボボックスを生成します。 ComboBoxをクリックし、DataGridの行の1つを選択すると、ComboBoxの選択が正しく機能しません。 (単に列ヘッダーが表示されます) 選択した行の最初の列の値をComboBoxの選択肢として表示します。

誰でもこの問題を助けることができれば、それは非常に訴えかけるでしょう。

おかげで、

マイク

+1

なぜこれを行うにはXAMLを使用できませんか? – Bernard

+0

私は実行時にComboBoxを作成しています。 – zzMzz

答えて

1

それはあなたの頂けるご希望のおComboBoxclnObjectsから項目を含むように、しかしDataGrid、デフォルトではないStackPanelを使用してドロップダウンを表示するように聞こえます。

今すぐComboBoxにはDataGrid個のコントロールでいっぱいです。オブジェクトはclnObjectsではありません。あなたが項目を選択するとき、これはあなたがDataGridを選択している、意味はなく、あなたがコンボボックスの表示テキストは、最初のSelectedItemデータグリッドであるComboBox.SelectedItem.SelectedItemが含まれているので、それを変更しようとすることができDataGrid.SelectedItem

、しかし私はまだこれが悪いと感じあなたはComboBoxItem

あたりの新しいDataGridオブジェクトを作成する必要があるため、デザインは代わりに私の代わりに、デフォルトのStackPanelにDataGridでコンボボックスの項目を表示するには、デフォルトComboBox.Templateをoverwrittingをお勧めします。デフォルトのコンボボックステンプレートはhereです。それをコピーしてStackPanelをIsItemsHost="True"と置き換えてDataGridに置き換えます。

<Popup x:Name="Popup" ...> 
    <Grid x:Name="DropDown" ...> 
     <Border x:Name="DropDownBorder" ... /> 
     <ScrollViewer ...> 
     <!-- Replace this with a DataGrid --> 
     <StackPanel IsItemsHost="True" 
        KeyboardNavigation.DirectionalNavigation="Contained" /> 
     </ScrollViewer> 
    </Grid> 
    </Popup> 
関連する問題