У меня есть WPF UserControl
упаковка некоторых других элементов управления. Одним из них является ItemsControl
, и мне нужно, чтобы сделать доступными в моем UserControl
в Items
собственности ItemsControl
, так что я сделал следующее:Как сделать доступным в usercontrol внутреннюю коллекцию управления в Wpf?
public partial class MyControl : UserControl
{
private static readonly DependencyPropertyKey PagesPropertyKey = DependencyProperty.RegisterReadOnly("Pages", typeof(ObservableCollection<XXX>), typeof(MyControl), new FrameworkPropertyMetadata(new ObservableCollection<XXX>()));
public static DependencyProperty PagesProperty = PagesPropertyKey.DependencyProperty;
public ObservableCollection<XXX> Pages
{
get { return (ObservableCollection<XXX>) base.GetValue(PagesProperty); }
set { base.SetValue(PagesProperty, value); }
}
}
Затем в XAML ItemsControl
имеет следующее:
ItemsSource="{Binding Pages, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:TypeExtension views1:MyControl}}}"
Я думал, что это должно работать и на самом деле выглядит со Snoop UserControl
, а у ItemsControl
есть те же элементы, но когда я добавляю элементы непосредственно к внутреннему ItemsControl
, первый элемент, который я добавляю, автоматически выбирается, и когда я делаю i t используя мой UserControl
выбор не происходит, поэтому что-то не так.
Любые идеи?
EDIT: Элемент управления - это элемент управления Wizard, и мы используем его всегда с некоторыми другими элементами управления. Я создаю новый Usercontrol. Если я непосредственно использую Мастер в представлении Первого элемента атрибута ItemsSource автоматически выбирается, если я устанавливаю свойство ItemsSource мастера в свойство Pages, то при запуске нет выбранной страницы.
Я действительно удивляюсь, почему это происходит.
вы можете выбрать из 'ItemsControl', а не просто' UserControl' –
@ Vignesh.N: У меня есть несколько элементов управления, чтобы показать, что они не являются частью элемента ItemsControl. Элемент ItemsControl попытается нарисовать все, как ListBox, не так ли? –