Gets or sets a foreign key converter, which allows custom key/value mappings to be provided.
Property Value
A reference to a
ForeignKeyConverter, which allows custom key/value mappings to be provided.
The following code provides the implementation of the PersonForeignKeyConverter class.
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
The following code provides the implementation of the PersonForeignKeyConverter 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;
}
}
Target Platforms: Windows 11, Windows 10, Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2