2012-02-09 4 views
0

Я использую элементы управления DevExpress WPF, expessicaly BarEditItem, ComboBoxEdit и GridControl. Обычно, когда вы используете стандартный ComboBoxEdit, когда вы выбираете элемент, combobox закрывается.Как закрыть DevExpress WPF ComboBox, когда выбрана строка вложенной сетки?

Однако, теперь я устанавливаю ComboBoxEditSettings.PopupContentTemplate в GridControl. Всякий раз, когда я выбираю строку в GridControl (нажав на нее), я хочу, чтобы выпадающее меню было закрыто. Он работает, когда я нажимаю клавишу, но не тогда, когда я просто нажимаю запись.

Часть XAML выглядит следующим образом:

<dxb:BarEditItem.EditSettings > 
       <dxe:ComboBoxEditSettings 
        ItemsSource="{Binding Path=EditieCollection}" 
        DisplayMember="JaarEditieNummer" 
        AutoComplete="True" 
        Name="editieComboBox" AcceptsReturn="True" IncrementalFiltering="False" ImmediatePopup="True"> 
        <dxe:ComboBoxEditSettings.PopupContentTemplate > 
         <ControlTemplate> 
          <dxg:GridControl 
           Name="PART_GridControl" 
           ItemsSource="{Binding Path=EditieCollection}" 
           AutoPopulateColumns="False" ShowBorder="False" 
           > 
           <dxg:GridControl.Columns> 
            <dxg:GridColumn x:Name="EditieJaarEditieNummer" FieldName="JaarEditieNummer" Header="Editie" Width="90" /> 
            <dxg:GridColumn x:Name="EditieOplage" FieldName="OplageDatum" Header="Oplage" Width="90" /> 
            <dxg:GridColumn x:Name="EditieVerschijning" FieldName="Datum" Header="Verschijnt" Width="90" /> 
            <dxg:GridColumn x:Name="EditieOmschrijving" FieldName="Omschrijving" Header="Omschrijving" /> 
           </dxg:GridControl.Columns> 
           <dxg:GridControl.View> 
            <dxg:TableView 
             Width="Auto" 
             AllowGrouping="False" IsGroupPanelMenuEnabled="False" 
             FocusedRow="{Binding Path=SelectedEditie, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
             AllowEditing="False" AllowMoveColumnToDropArea="False" AllowMoving="False" 
             NavigationStyle="Row" ShowGroupPanel="False" 
             /> 
           </dxg:GridControl.View> 
          </dxg:GridControl> 
         </ControlTemplate> 
        </dxe:ComboBoxEditSettings.PopupContentTemplate> 
       </dxe:ComboBoxEditSettings> 
      </dxb:BarEditItem.EditSettings> 

Я видел другие решения, в которых можно было бы установить свойство .IsOpen стандартного управления ComboBox к ложным, но DevExpress ComboBoxEdit не имеет такого рода имущества (по крайней мере, не то, что я знаю).

Спасибо!

ответ

1

Я теперь установка ComboBoxEditSettings.PopupContentTemplate к GridControl.

Я считаю, что LookUpEdit вместо выпадающего списка является лучшим выбором для вас в этом случае:

<dxb:BarEditItem Name="bEditItem" > 
    <dxb:BarEditItem.EditSettings > 
     <dxg:LookUpEditSettings ItemsSource="{Binding ...}" 
          DisplayMember="..." 
          ValueMember="..."> 
     </dxg:LookUpEditSettings> 
    </dxb:BarEditItem.EditSettings> 
</dxb:BarEditItem> 

Во всяком случае, вы можете использовать IsPopupOpen свойство, чтобы закрыть всплывающее окно.

+0

Использование LookUpEdit вместо ComboBoxEditSettings работало как шарм! –