2010-04-19 141 views
2

我是WFP新手,嘗試通過不同的示例學習它。暴露內部控件內容屬性爲自己[用戶控制]

現在我想創建一個自定義的用戶控件,它裏面有按鈕(以及其他控件)。我想公開按鈕內容屬性作爲用戶控制自己。

用戶控制:

<DockPanel LastChildFill="True"> 
    <Button Name="ClickButton" DockPanel.Dock="Right" Focusable="False"/> 
    <TextBox Name="TextBox">lorem ipsum dolor set amet</TextBox> 
</DockPanel> 

我想更改按鈕在主應用程序窗口的內容,這樣的:

<my:ButtonTextBox Name="mtb1" Grid.Column="0" Grid.Row="0">Some text</my:ButtonTextBox> 

一些文字,就是被寫在按鈕上的文本。 ..

我該如何做到這一點? 謝謝!

回答

5

你的用戶控件應該定義自己的依賴屬性按鈕的內容:

public static readonly DependencyProperty ButtonContentProperty = ...; 

然後你的用戶控件的按鈕綁定到該屬性:

<Button Name="ClickButton" Content="{Binding ButtonContent}" .../> 

然後你可以如下使用它:

<my:ButtonTextBox ButtonContent="Some text" .../> 

如果您希望能夠這樣做:

<my:ButtonTextBox ...>Some text</my:ButtonTextBox> 

你需要指定你的用戶控件的ContentPropertyAttribute:

[ContentProperty("ButtonContent")] 
public partial class ButtonTextBox 
+0

謝謝。它在一些小的(並且我認爲對於大多數ppl微不足道的)增加中起作用 – David 2010-04-19 12:52:21