2011-03-29 32 views
0

對於非集合WPF DependencyProperties,如果我需要在不影響任何其綁定更新屬性的值,我用:如何設置MultiSelector的SelectedItems屬性的當前值?

SetCurrentValue(DependencyProperty, value); 

是否有同等功能,我可以使用多功能的的SelectedItem 小號依賴屬性?當我嘗試通過DataGrid訪問它時,我可以看到SelectedItems DP不公開。此外,還有一個內部的SelectedItemsImplProperty。我如何在此DP上設置當前值?

感謝,

-Craig

回答

1

這是令人難以置信。我在大約15分鐘前在網上尋找同樣的問題,而你在2個小時前就想到了這個問題!小世界,嗯?試試下面的代碼:

代碼

if (!this.IsUpdatingSelectedItems) 
{ 
    this.BeginUpdateSelectedItems(); 
    foreach (object item in itemsToAdd) 
    { 
     this.SelectedItems.Add(item); 
    } 
    this.EndUpdateSelectedItems(); 
} 
+0

這種方法並幫助,謝謝。需要考慮的一件事是,如果您沒有使用從DataGrid派生的類,那麼您將無法訪問IsUpdatingSelectedItems和Begin/EndUpdateSelectedItems(),因爲它們受到保護。因此,如果您需要訪問非公共成員,您可以使用反射來調用DataGrid上的SelectItem方法,該方法基本上封裝了上述代碼。 – Craig 2011-03-30 02:11:45

+0

我認爲它需要一個同步塊!雖然似乎BeginUpdateSelectedItems()影響IsUpdatingSelectedItems。 – 2011-07-14 16:22:02