我想讓UserControl(GridSearch)裏面有另一個UserControl_2。我想使用XAML將一些FrameworkElement添加到UserControl_2的面板。DependencyProperty ObservableCollection事件
所以我做的ObservableCollection的DependencyProperty在GridSearch:
public partial class GridSearch : UserControl
{
public GridSearch()
{
InitializeComponent();
}
public ObservableCollection<Filter> Filters
{
get { return (ObservableCollection<Filter>)GetValue(FiltersProperty); }
set { SetValue(FiltersProperty, value); }
}
public static readonly DependencyProperty FiltersProperty =
DependencyProperty.Register("Filters",
typeof(ObservableCollection<Filter>),
typeof(GridSearch),
new FrameworkPropertyMetadata(getObservableFilters(), null)
);
private static ObservableCollection<Filter> getObservableFilters()
{
var ob = new ObservableCollection<Filter>();
ob.CollectionChanged += ob_CollectionChanged;
return ob;
}
private static void ob_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
}
}
現在我試圖用ob_CollectionChanged新元素添加到面板上。但是,因爲它是靜態方法,我無法訪問該面板。我無法投遞發件人,因爲它只給了我ObservableCollection。但是我需要GridSearch。
我正在尋找從幾個小時的解決方案,我無法找到任何想法如何解決它。
我剛纔已經做了分鐘前。它看起來像「Public ObservableCollection Filters」屬性由GridSearch的所有對象實例共享,它不能像這樣。 –
Filters屬性本身不是共享的,但是您使用相同的集合實例初始化它 - 新的FrameworkPropertyMetadata(getObservableFilters(),null) – Jogy