0

私はWPFを初めて使用するので、これは簡単な質問かもしれません。

スタイル、フォント、その他すべてが定義された ListBox があります。そこで1行を強調表示したいのですが、問題はすべての行がプログラムで追加されるため、行のプロパティを編集して前景の色などを変更することはできません(それで十分です)。対象の行 ID はわかっていますが、その ListItemBox オブジェクトにアクセスする方法が見つかりません。私が使用した特定のアイテムにアクセスするには:

((MyClass)(Playlist.Items[i])).MyProperty = 0; //Access the i element of ListBox named Playlist

それは可能ですか?ここや他のサイトで解決策を検索しましたが、私の場合は何も役に立ちません。

助けてくれてありがとう。

編集:行を選択するつもりはありませんが、前景色を変更するつもりです。

4

3 に答える 3

0

このための適切な MVVM ソリューションを実装できない場合は、 のプロパティListBoxItemからを取得できます。が (プロパティを使用して) データ バインドされている場合、自動的に生成される各 のプロパティは、プロパティにバインドされているコレクション内の項目に設定されます。そこで評価できます。ただし、このアプローチはお勧めしません。可能であれば、適切な MVVM ソリューションを使用してください。ItemsListBoxListBoxItemsSourceListBoxItemDataContextItemsSource

var id = ...;

var item = (from ListBoxItem i in ListBox1.Items
            let data = (MyClass) i.DataContext
            where data.Id == id
            select i).FirstOrDefault();
if (item != null)
    item.Foreground = Brushes.Red;
于 2013-06-11T19:21:40.743 に答える