2017-02-17 6 views
2

Я создал UserControl, и я хочу открыть ItemSource элемента ItemsControl, который используется в UserControl. Но я хочу, чтобы выставить товары через обособленное имущество, как это:WPF: Expose ItemsControl.ItemsSource в UserControl через отдельное свойство

<MyUserControl> 
    <MyProperty> 
    <Button>Button 1</Button> 
    <Button>Button 2</Button> 
    </MyProperty> 
</MyUserControl> 

Причина разделения по собственности, потому что мне нужно создать несколько свойств, как это. Я попытался создать свойство Dependency по-разному, но я не могу заставить его работать так, как я хочу. Без отдельного имущества я могу заставить его работать.

Я нашел некоторые подсказки в следующей теме, но решение не использовать отдельное свойство: How to create WPF usercontrol which contains placeholders for later usage

Любая помощь приветствуется.

ответ

1

Оказалось, что для получения желаемого результата мне необходимо использовать две свойства зависимости.

Пример от корпорации Майкрософт, который работает, как ожидалось:

Private Shared ReadOnly MyPropertyPropertyKey As DependencyPropertyKey = DependencyProperty.RegisterReadOnly("MyProperty", GetType(List(Of FrameworkElement)), GetType(MyUserControl), New FrameworkPropertyMetadata(New List(Of FrameworkElement)())) 
Public Shared ReadOnly MyPropertyProperty As DependencyProperty = MyPropertyPropertyKey.DependencyProperty 

Public ReadOnly Property MyProperty() As List(Of FrameworkElement) 
    Get 
     Return CType(GetValue(MyPropertyProperty), List(Of FrameworkElement)) 
    End Get 
End Property