Is this by design? - if so, how do I clear the "filter" - should I Fill the data?
Yes. The BrowseDialog will always search the data stores records and not the records within your BO. The business object that you associate with the browse dialog on the form (BusinessObjectToPopulate) will have all of the interal records replaced with the results from the browse. If you want to combine a BO on your form with the results that come back from the sever, then just drop another BO on your form which will be used for browse purposes only and leave the other BO which is bound to your controls alone. Then once the browse has been performed, you can merge the two BOs by calling the CopyDataFrom method on the bound BO.
MyBoundBO.CopyDataFrom(MyBrowseBO, ClearAndFillFromTable)
If you want to search within a BO, then you can just perform a Select() on the DataTable itself:
MyBoundBO.CurrentDataTable.Select("WHERE STATEMENT")
Also, if you have an actual "Filter" applied, then just reset the property:
MyBO.FIlter = ""
Note: The BrowseDialog does NOT apply a filter, it pulls actual records back from the server.