为什么标题没有保存在数据库中 - WPF/Telerik/RadGridView?
Why title is not saved in the database - WPF/Telerik/RadGridView?
我将这个 RadComboBox 放在 RadGridViewDataColumn 中:
<tk:RadGridView
Name="grdPeople"
ItemsSource="{Binding People}"
SelectedItem="{Binding SelectedPerson, Mode=TwoWay}">
<tk:GridViewDataColumn
DataMemberBinding="{Binding PeopleDetails}"
UniqueName="PeopleDetails"
Header="People">
<tk:GridViewDataColumn.CellTemplate>
<TextBlock
Text="{Binding Title}"/>
</tk:GridViewDataColumn.CellTemplate>
<tk:GridViewDataColumn.CellEditTemplate>
<tk:RadComboBox
DisplayMemberPath="TitleValue"
SelectedItem="{Binding Path=People.Title, Mode=TwoWay}"
ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type tk:RadGridView}}, Path=DataContext.Titles}"/>
</tk:GridViewDataColumn.CellEditTemplate>
</tk:GridViewDataColumn>
</tk:RadGridView>
我知道问题来自混合 RadGridView 和 window 数据上下文 objects,但不确定,为什么标题没有保存在数据库中?
相反,如果我用普通的TextBox替换RadComboBox:
<TextBox
Width="50"
Text="{Binding Title}"
TextAlignment="Left"/>
在文本框中键入值就可以了,将标题保存在数据库中。
我猜是,在 RadGridView 的单元格编辑模板中混合了各种组件?
只需将 SelectedItem 绑定的路径从 'People.Title' 更改为 'Title'
<tk:RadComboBox
DisplayMemberPath="TitleValue"
SelectedItem="{Binding Path=Title, Mode=TwoWay}"
ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type tk:RadGridView}}, Path=DataContext.Titles}"/>
我将这个 RadComboBox 放在 RadGridViewDataColumn 中:
<tk:RadGridView
Name="grdPeople"
ItemsSource="{Binding People}"
SelectedItem="{Binding SelectedPerson, Mode=TwoWay}">
<tk:GridViewDataColumn
DataMemberBinding="{Binding PeopleDetails}"
UniqueName="PeopleDetails"
Header="People">
<tk:GridViewDataColumn.CellTemplate>
<TextBlock
Text="{Binding Title}"/>
</tk:GridViewDataColumn.CellTemplate>
<tk:GridViewDataColumn.CellEditTemplate>
<tk:RadComboBox
DisplayMemberPath="TitleValue"
SelectedItem="{Binding Path=People.Title, Mode=TwoWay}"
ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type tk:RadGridView}}, Path=DataContext.Titles}"/>
</tk:GridViewDataColumn.CellEditTemplate>
</tk:GridViewDataColumn>
</tk:RadGridView>
我知道问题来自混合 RadGridView 和 window 数据上下文 objects,但不确定,为什么标题没有保存在数据库中?
相反,如果我用普通的TextBox替换RadComboBox:
<TextBox
Width="50"
Text="{Binding Title}"
TextAlignment="Left"/>
在文本框中键入值就可以了,将标题保存在数据库中。
我猜是,在 RadGridView 的单元格编辑模板中混合了各种组件?
只需将 SelectedItem 绑定的路径从 'People.Title' 更改为 'Title'
<tk:RadComboBox
DisplayMemberPath="TitleValue"
SelectedItem="{Binding Path=Title, Mode=TwoWay}"
ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type tk:RadGridView}}, Path=DataContext.Titles}"/>