在WPF .Net 4.5应用程序中,我想在功能区中有几个可编辑的组合框,因此我可以选择列表中的值或键入自定义值。
使用ComboBox
与IsEditable="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元素不太熟悉,所以我想知道我是否错过了一些明显的东西。
答案 0 :(得分:0)
是的,你想念...... 这个bug ..并且必须写它..
private void RibbonGallery_SelectionChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
Mouse.Capture(null);
}