내부에 다른 UserControl_2가있는 UserControl (GridSearch)을 만들려고합니다. XAML을 사용하여 UserControl_2 패널에 FrameworkElements를 추가하고 싶습니다. DependencyProperty ObservableCollection 이벤트
그래서 나는 GridSearch에 ObservableCollection에 DependencyProperty를했다 :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가 필요합니다.
몇 시간에서 해결책을 찾고 있는데 해결 방법을 찾지 못했습니다.
난 그냥 한 한 그 분 전 :
<gsh:GridSearch.Filters>
이 내가 끝낼 코드입니다. "Public ObservableCollection Filters"속성은 GridSearch의 모든 객체 인스턴스에서 공유하며 이와 같이 사용할 수 없습니다. –
Filters 속성은 그 자체로는 공유되지 않지만 동일한 컬렉션 인스턴스로 초기화합니다. - 새 FrameworkPropertyMetadata (getObservableFilters(), null) – Jogy