新しいビットからわかることから、LLSLink
とUnlink
イベントにサブスクライブする必要があります。Link
LLS の可視部分に追加されたアイテムを含む引数を渡します。Unlink
LLS から削除されたアイテムについても同じことを行います。したがって、次のようにします。
List<string> trackedItems = new List<string>();
private void myListOfStrings_Link(object sender, LinkUnlinkEventArgs e)
{
var x = e.ContentPresenter;
if (x == null || x.Content == null)
return;
trackedItems.Add(x.Content.ToString());
}
private void myListOfString_Unlink(object sender, LinkUnlinkEventArgs e)
{
var x = e.ContentPresenter;
if (x == null || x.Content == null)
return;
trackedItems.Remove(x.Content.ToString());
}
Link
andは、基になるリスト内のすべてのレンダリングされたアイテムに対して起動することに注意してUnlink
ください。したがって、LLS のグループ化機能を使用している場合は、実際のタイプに基づいてアイテムを追跡するかどうかのテストを強化する必要があります。戻ってくる。したがって、基になるオブジェクトを追跡したいある種のグループ オブジェクトがある場合は、次のようにすることができます。
private void myGroupedListOfObjects_Link(object sender, LinkUnlinkEventArgs e)
{
var x = e.ContentPresenter;
if (x == null || x.Content == null)
return;
var myObject = x.Content as MyObject;
if (myObject != null)
{
foreach (var item in myObject.Items)
{
trackedItems.Add(item);
}
}
}
これが役立つことを願っています!うまくいくかどうかお知らせください。