1

次のように、ListBoxのWPFAttachedBehavioralから選択したアイテムのリストを取得しています。

  private void ListBoxSelectionChanged(object param)
    {
        var selectedItems = param;
        SelectedMItems = selectedItems.ToString().Split(',').ToList<string>();
        //Console.WriteLine(selectedItems.ToString());

    }

それは機能しますが、他にもっと良い方法はありますか。

4

2 に答える 2

3

SelectedItemsプロパティは であるため、IListオブジェクトも同様であると想定しています。

この場合、次の 2 つのいずれかを実行するのが最も簡単です。

// If the list already contains strings
SelectedMItems = ((IList)selectedItems).Cast<string>().ToList();

// If the list contains other objects
SelectedMItems = ((IList)selectedItems).Cast<object>().Select(o => o.ToString()).ToList();
于 2013-03-07T13:59:13.567 に答える
1

「より安全」にするために、このようなものが機能する可能性があります。

var items = param as ObservableCollection<string>;

または単に列挙可能なもの:

var items = param as IEnumerable<string>;

次に、適切なアイテムのコレクションがあります。

于 2013-03-07T13:50:32.107 に答える