I reread your post, Trent, and thought I might be missing something glaringly obvious ( Lord knows it would not be the first time
)
I thought perhaps you were telling me that the
MyBO2.Filter = "FKField = " + MyBO1.PK.ToString()
would test FKField against a collection of all the pks in MyBO1. I even tried it as MyBO1.PK().Tostring()
But it seems it just compares it to the currentrow value, so would only get one record. Did I misunderstand or do it wrong or it that just the way it is?
I created a function to return a string of integers from my keylist and can build the filter that way, but I still feel there is some magic I'm missing
( I thought this function might already exists somewhere in the framework but couldn't find it )
Public Shared Function keyarraytoString(ByVal keyarray As List(Of System.Int32)) As String
Dim keystring As String = ""
For Each key In keylist
keystring += key.ToString()
If keylist.IndexOf(key) <> keylist.Last Then
keystring += ","
End If
Next
Return keystring
End Function
So then I filter my templates :
Me.TemplatesBO1.Filter = "ikey not in (" & keystring & ")"
It works fine and I can certainly create overloads of the function to handle other types in the passed in list.
But I can't help but feel that while it is
a solution it is not
the solution.