使RibbonCombobox可编辑

时间:2015-05-27 10:19:28

标签: .net wpf xaml

在WPF .Net 4.5应用程序中,我想在功能区中有几个可编辑的组合框,因此我可以选择列表中的值或键入自定义值。

使用ComboBoxIsEditable="True"IsReadOnly="False"的常规RibbonComboBox效果很好,但在<RibbonComboBox IsEditable="True" IsReadOnly="False" IsTextSearchEnabled="False"> <RibbonGallery IsTextSearchEnabled="False" SelectedValue="{Binding Libelle}" > <RibbonGalleryCategory IsTextSearchEnabled="False"> <RibbonGalleryCategory.ItemsSource> <x:Array Type="sys:String"> <sys:String>Zero hydro</sys:String> <sys:String>Cote marine</sys:String> <sys:String>Mouillage</sys:String> <sys:String>Profondeur</sys:String> <sys:String>Hauteur d'eau</sys:String> </x:Array> </RibbonGalleryCategory.ItemsSource> </RibbonGalleryCategory> </RibbonGallery> 上设置这两个属性不起作用:输入值后,点击在控件外部或按Enter键,键入的值将替换为列表中先前选定的值。不会触发RibbonGallery的SelectionChanged事件。 (从下拉列表中选择确实可以正常更新绑定属性。)

以下是一些相关帖子:

undefined behaviour同样的问题没有答案 Editable riboncombobox problems with selected item我在2d答案中尝试了解决方法,但无济于事。即使鼠标不移动也会出现问题,因此它可能没有关联。

RibbonComboBox selected gallery item reverts to old value on mouse leave同样的问题,但解决方案需要创建一个自定义类来覆盖RibbonComboBox的正常行为。我还没有对它进行过测试,但是我必须这样做才能获得我认为的标准行为。

以下是一个麻烦的ribboncomboboxes的代码(Libelle是一个在修改时引发PropertyChanged事件的字符串属性):

{{1}}

我对RibbonComboBox元素不太熟悉,所以我想知道我是否错过了一些明显的东西。

1 个答案:

答案 0 :(得分:0)

是的,你想念...... 这个bug ..并且必须写它..

    private void RibbonGallery_SelectionChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
    {
        Mouse.Capture(null);
    }