'DeclarationPublic MustInherit Class ForeignKeyConverter
'UsageDim instance As ForeignKeyConverter
public abstract class ForeignKeyConverter
Represents a foreign key converter, which allows custom key/value mappings to be provided.
'DeclarationPublic MustInherit Class ForeignKeyConverter
'UsageDim instance As ForeignKeyConverter
public abstract class ForeignKeyConverter
By default, foreign key constraints defined by a DataTable or DataView as well as enums can be automatically detected; however, through a ForeignKeyConverter, custom key/value mappings can also be defined. When providing custom key/value mappings, a foreign key converter must be created by deriving from the ForeignKeyConverter class and overriding its GetKeyFromValue and GetValueFromKey methods in which the value for a specified key and the key for a specified value should be returned (see implementation of PersonForeignKeyConverter class in Example 2). This converter can then be provided to the ForeignKeyConverter property of either a foreign key description or configuration.
If a ForeignKeyConverter has not been explicitly provided for a ForeignKeyConfiguration, the converter from its corresponding DataGridForeignKeyDescription will be used.
Public Class PersonForeignKeyConverter Inherits ForeignKeyConverter Public Overrides Function GetKeyFromValue( value As Object, configuration As ForeignKeyConfiguration ) As Object Dim bindingList As PersonBindingList = TryCast( configuration.ItemsSource, PersonBindingList ) If Not bindingList Is Nothing Then Dim person As Person = TryCast( value, Person ) If Not person Is Nothing Then Return person.PersonID End If End If Return -1 End Function Public Overrides Function GetValueFromKey( key As Object, configuration As ForeignKeyConfiguration ) As Object Dim bindingList As PersonBindingList = TryCast( configuration.ItemsSource, PersonBindingList ) If Not bindingList Is Nothing Then Try Dim personID As Integer = CInt( key ) Dim person As Person For Each person In bindingList If person.PersonID = personID Then Return person End If Next person Catch e As Exception ' key can be nothing End Try Return Nothing End Function End Class
public class PersonForeignKeyConverter : ForeignKeyConverter { public override object GetKeyFromValue( object value, ForeignKeyConfiguration configuration ) { PersonBindingList bindingList = configuration.ItemsSource as PersonBindingList; if( bindingList != null ) { Person person = value as Person; if( person != null ) { return person.PersonID; } } return -1; } public override object GetValueFromKey( object key, ForeignKeyConfiguration configuration ) { PersonBindingList bindingList = configuration.ItemsSource as PersonBindingList; if( bindingList != null ) { try { int personID = ( int )key; foreach( Person person in bindingList ) { if( person.PersonID == personID ) { return person; } } } catch( Exception ) { // key can be null } } return null; } }
System.Object
Xceed.Wpf.DataGrid.ForeignKeyConverter
Xceed.Wpf.DataGrid.DataGridForeignKeyConverter
Xceed.Wpf.DataGrid.DataTableForeignKeyConverter
| Name | Description | |
|---|---|---|
![]() | GetKeyFromValue | Retrieves the key for the specified value. |
![]() | GetValueFromKey | Overloaded. Retrieves the value for the specified key. |
.NET: net5.0, net5.0-windows, net6.0, net6.0-macos, net6.0-windows, net7.0, net7.0-macos, net7.0-windows, net8.0, net8.0-browser, net8.0-macos, net8.0-windows, net9.0, net9.0-browser, net9.0-macos, net9.0-windows, net10.0, net10.0-browser, net10.0-macos, net10.0-windows.
.NET Framework: net40, net403, net45, net451, net452, net46, net461, net462, net463, net47, net471, net472, net48, net481.