0

1つのインターフェイスから継承されたさまざまなクラスがあり、それらはすべてOberservableCollectionに追加されます。クラスbを除いて、Observablecollectionのすべての値をリストボックスに割り当てる方法を誰かに説明してもらえますか。

仮定(編集):

private void start()
{
    DP = new MyClass();
    this.ListBox.ItemsSource = new ObservableCollection<WInstance>(MyClass.Handler.Instances.OfType<WInstance>());
}

...
class Handler() : INotifyPropertyChanged
{
   public ObservableCollection<HandlerItem> Instances { get; private set; } 
 ...
}

class HandlerItem: INotifyPropertyChanged
{
    public Instance inst { get; private set; } //Instance could be WInstance or CInstance
}

実行時に、MyClassはリモートコンピューターからWInstanceまたはCInstanceのいくつかのオブジェクトを受信します。Instances.OfType()で解決しようとすると、ItemsSourceが更新されたようです。

4

1 に答える 1

0
var list = new List<Instance>();

//.. add all items to your list here.


ObservableCollection<Instance> OCI = new ObservableCollection<Instance>(list.OfType<classa>());
// the above will generate a new ObservableCollection which contains all items of type classa from list.
于 2013-02-04T19:08:43.897 に答える