3
比方說,我有一個非常簡單的用戶控件:如何將UserControl中的嵌套控件完全暴露給外部?
<UserControl x:Class="Test.UserControls.MyControl">
<DockPanel>
<Label Content="lorem" />
<Button Name="ButtonFromUserControl" />
</DockPanel>
</UserControl>
例如,我想從外部訪問按鈕的所有屬性,如果我在另一個文件中添加用戶控件。我想象這樣的事情:
<StackPanel>
<usercontrols:MyControl Button.Dock="{Binding ButtonDockPosition}"/>
</StackPanel>
我知道我可以創建依賴屬性爲每個屬性,使他們可以訪問,但是我還不知道這可能會或可能不會在以後使用和不想要爲每個嵌套控件的屬性添加一個DP。
我不確定這是否是正確的方式來做到這一點,如果有另一種方式或模式我也會感興趣。
編輯:
我也試圖使按鈕本身就是一個DP,但doesnt't讓我訪問它的屬性:它在
public static readonly DependencyProperty NestedButtonProperty =
DependencyProperty.RegisterAttached("NestedButton", typeof (Button), typeof (MyControl),
new FrameworkPropertyMetadata());
public Button NestedButton => ButtonFromUserControl;
您想僅通過XAML或代碼隱藏訪問控件嗎? – StepUp
XAML將是理想的。 – Lennart
是否嘗試給Button和UserControl一個名稱,然後嘗試通過XAML訪問它? – safi