0
我是WPF的新手,并对我在数据网格上使用组合框时遇到的问题有疑问。当从组合中选择一个项目时,绑定属性不会像我期望的那样更新。WPF datagrid - 选择组合项后更新属性
由于我无法发布图片(这是我第一次发布到SO),我会尝试解释。如果从组合列表中选择“D00120”,组合将反映更改,但网格属性不会更改。
的XAML:
<DataGridTemplateColumn Header="CPT Code" Width="75">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding PartBCombo,
RelativeSource={RelativeSource AncestorType=Window}}"
DisplayMemberPath="PartBLookup_CPTCode"
SelectedValuePath="PartBLookup_ProcedureDescription"
SelectedValue="{Binding PartBBilling_ProcedureName, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
物业组合项目:
Partial Public Class PartBBilling_Combobox
Private _PartBLookup_CPTCode As String
Public Property PartBLookup_CPTCode As String
Get
Return _PartBLookup_CPTCode
End Get
Set(value As String)
_PartBLookup_CPTCode = value
End Set
End Property
Private _PartBLookup_ProcedureDescription As String
Public Property PartBLookup_ProcedureDescription As String
Get
Return _PartBLookup_ProcedureDescription
End Get
Set(value As String)
_PartBLookup_ProcedureDescription = value
End Set
End Property
End Class
物业数据网格:
Private _PartBBilling_CPT As String
Public Property PartBBilling_CPT As String
Get
Return _PartBBilling_CPT
End Get
Set(value As String)
_PartBBilling_CPT = value
RaisePropertyChanged("PartBBilling_CPT")
End Set
End Property
Private _PartBBilling_ProcedureName As String
Public Property PartBBilling_ProcedureName As String
Get
Return _PartBBilling_ProcedureName
End Get
Set(value As String)
If _PartBBilling_ProcedureName <> value Then
_PartBBilling_ProcedureName = value
RaisePropertyChanged("PartBBilling_ProcedureName")
End If
End Set
End Property
当选择了一个项目,正确的UI显示但网格属性不会更新。除此之外,组合框的功能还不错。
感谢您的任何帮助或建议。
感谢您的回复。如果我将它们反转,那么程序名称会显示在组合中,而不是CPT代码(只是在我缺少某些东西的情况下尝试过)。我希望显示CPTcode,并立即在组合框右侧的文本框中显示过程名称。我无法发布图片,因为我是新手,所以这是我可以解释的最好方式。从组合中选择一个项目时,必须更新组合的属性。但我不知道该怎么做。 – user3014908
为了使选择正常工作,您需要指定一些与CTPCode类似的独特选项作为您的SelectedValuePath – atomaras
如果我这样做,那么我将失去在相邻文本框中显示过程名称的功能。我希望我可以发布图片来更好地解释这种情况,但我需要至少10的声望才能发布图片。组合功能按需要工作。它只是让datagrid类中的属性正确更新。否则,组合中的原始选定项目被写回数据库而不是新选择的项目。 – user3014908