0
我有一个WCF客户端,我需要将DTO放入BindingSource,但是当我尝试将过滤器应用于BindingSource时,它不会像neather List或BindingList一样工作,因为它们都会为IBindingListView.SupportsFiltering
返回false。我需要返回哪些集合来支持WCF中的筛选?
我需要什么样的数据类型来使用,以便能够在我的列表过滤器?
代理DTO:
namespace MyApp.DataContracts
{
[System.Runtime.Serialization.DataContractAttribute(Name = "ServerSetupDTO", Namespace = "http://example.com/MyApp")]
[System.SerializableAttribute()]
public partial class ServerSetupDTO : object, System.Runtime.Serialization.IExtensibleDataObject
{
[System.Runtime.Serialization.DataMemberAttribute()]
public System.ComponentModel.BindingList<MyApp.DataContracts.DatabaseInfo> GenericPreconfigs
{
//(Snip)
}
//(Snip)
}
[System.Runtime.Serialization.DataContractAttribute(Name = "DatabaseInfo", Namespace = "http://example.com/MyApp")]
[System.SerializableAttribute()]
public partial class DatabaseInfo : object, System.Runtime.Serialization.IExtensibleDataObject
{
[System.Runtime.Serialization.DataMemberAttribute()]
public string AllowedServer
{
//(Snip)
}
//(Snip)
}
}
应用滤镜:
ServerSetupDTO serverSetupDTO = proxyClient.GetServerSetup();
bsServerSettings.DataSource = serverSetupDTO ;
bsPreconfigList.DataMember = "GenericPreconfigs";
bsPreconfigList.DataSource = bsServerSettings;
//This filter never gets applied, bsPreconfigList.SupportsFiltering is false.
bsPreconfigList.Filter = String.Format("AllowedServer = '{0}'", cmbHost.Text);