ComboBox与转换器的文本绑定(与项目来源不同)无法正确显示文本

时间:2018-10-31 18:47:32

标签: xaml combobox

我有以下xaml的ComboBox

                    <ComboBox x:Name="NameComboBox"  
                          Text="{Binding NameText, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, Mode=TwoWay, Converter={StaticResource StringToUppercaseConverter}}"
                          SelectedItem="{Binding SelectedPerson, Mode=TwoWay}"
                          ItemsSource="{Binding Users}"
                          DisplayMemberPath ="Name"
                          ItemTemplate="{StaticResource UserSummaryDataTemplate}"
                          IsEnabled="{Binding IsEditable}"
                          IsEditable="{Binding IsEditable}"/>

我知道上层转换器的字符串可以在许多其他地方使用。这里的显示成员路径是可观察的“用户”集合中类的一个属性。这里的项目模板只是一个文本框,该文本框绑定到与成员路径相同的Name属性。这是通过这种方式设置的,因为如果用户键入的名称与集合中的名称不同,然后保存,它将使用该NameText创建一个新用户。当我在组合框中键入内容时,我希望字符串会强制所有字符都大写,就像在其他任何文本输入控件中使用此转换器时一样。 NameText属性是视图模型中的简单字符串属性,仅通过此文本条目进行更新。我假设显示成员路径与我的文本交互在这里发生了一些奇怪的事情。我在另一个组合框中执行了与此类似的操作,并且它可以工作,但是其来源只是一个可观察的字符串集合,并且没有displayMemberPath。我在这里想念什么?

**其他查找。我在后面的代码中添加了TextBoxBase.TextChanged方法,并且发件人(NameComboBox)的.Text值为我期望的值。完全大写的字符串,但实际显示的文本不大写。

0 个答案:

没有答案