选择更改时,DataGridComboBoxColumn会丢失其内容

msf*_*boy 6 wpf selecteditem datagridcomboboxcolumn

当我单击DataGridComboBoxColumn中的单元格时,ComboBox变为可见,我可以选择项目.当我选择了一个项目时,顶部可见它很好.但是当单元格ComboBox失去焦点时,因为我在DataGrid中点击了不同的东西,所以在我之前选择的单元格中没有可见的项目/文本.

如何保留选择/选定的文本?

那就是我的代码:

<DataGridComboBoxColumn
           Width="*"
           Header="Monday"
           DisplayMemberPath="SchoolclassName"
           SelectedValueBinding="{Binding SchoolclassCodeMonday}"  
           ItemsSource="{Binding Source={StaticResource ClassCodes}}">

    <DataGridComboBoxColumn.ElementStyle>
        <Style TargetType="ComboBox">
            <Setter Property="IsSynchronizedWithCurrentItem" Value="False" />
            <Setter Property="ItemsSource" 
                    Value="{Binding Source={StaticResource ClassCodes}}" />
        </Style>
    </DataGridComboBoxColumn.ElementStyle>

    <DataGridComboBoxColumn.EditingElementStyle>                   
        <Style TargetType="ComboBox">
            <Setter Property="ItemsSource" 
                    Value="{Binding Source={StaticResource ClassCodes}}" />
            <Setter Property="IsDropDownOpen" Value="True" />
        </Style>                   
    </DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>
Run Code Online (Sandbox Code Playgroud)

似乎有一个解决我的问题的方法:http://wpf.codeplex.com/Thread/View.aspx? ThreadId = 46627(滚动到底部)但我无法将解决方案转移到我的问题.因为我的模型设置完全不同.

SchoolclassNameSchoolclass.cs中的字符串属性 SchoolclassCodeMonday是TimeTable.cs中的字符串属性 ClassCodes又名SchoolclassCodes是ObservableCollection类型的属性| Schoolclass |

有人知道如何修复我的绑定?

Cad*_*ogi 2

我知道它可能不再需要了,但也许它会帮助其他人。您的 ComboBox 在更改时不需要更新绑定吗?例如

SelectedValueBinding="{Binding SchoolclassCodeMonday}"
Run Code Online (Sandbox Code Playgroud)

将会:

SelectedValueBinding="{Binding SchoolclassCodeMonday, 
Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"  
Run Code Online (Sandbox Code Playgroud)

还要确保当可观察集合上的代码更改属性时,您会触发通知。