2010-03-15 112 views
0

如何從WPF窗體值傳遞給WPF用戶控件

我有我的WPF窗體一個WPF用戶控件,當我點擊我的形式我的按鈕,我只是想通過一些價值的文本框,其在用戶控件中,告訴我如何執行此操作。

+0

只是爲了澄清:你有一個自定義控件,其中包含一個文本框(除了其他控件)?而且,從這個控制之外,你想要設置文本框中顯示的文本?! – gehho 2010-03-15 07:40:02

+0

如果你想讓人們用你的項目來幫助你,*請*不要上傳到easy-share.com上,在下載之前他們必須等待。取而代之的是使用http://skydrive.live.com(或類似的) – mg007 2010-03-15 11:30:05

+0

,你可以在skydrive中檢查這個示例 http://cid-08ec3041618e8ee4.skydrive.live.com/self.aspx/.SharedFavorites/InfoBox。rar – 2010-03-16 01:35:59

回答

2

有幾種方法可以做到這一點。最簡單的方法是使用String屬性並在UserControl中實現INotifyPropertyChanged。

爲了說明這一點,你將有你的用戶控件,如下所示:

/// <summary> 
/// Interaction logic for TextBoxUsercontrol.xaml 
/// </summary> 
public partial class TextBoxUsercontrol : UserControl, INotifyPropertyChanged 
{ 
    private string _text; 
    public string Text 
    { 
     get { return _text; } 
     set 
     { 
      _text = value; 
      if(PropertyChanged != null) 
       PropertyChanged(this, new PropertyChangedEventArgs("Text")); 
     } 
    } 

    public TextBoxUsercontrol() 
    { 
     DataContext = this; 
     InitializeComponent(); 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 
} 

現在在你的用戶控件的文本框本身必須綁定到你的Text屬性,像這樣:

<TextBox Text="{Binding Text}" /> 

然後在您的WPF窗體,你將聲明你的UserControl和一個按鈕來處理點擊,如下所示:

<local:TextBoxUsercontrol x:Name="textBox" /> 
<Button Click="ButtonBase_OnClick" >Add Text</Button> 

最後,在你的Click處理程序:

private void ButtonBase_OnClick(object sender, RoutedEventArgs e) 
{ 
    textBox.Text = "Hello!"; 
} 

已經顯示您的解決方案,我給你的問題問的技能1出5,你可以有很多你的問題更具體,並給示例代碼片段作爲我沒有要求我們從一個網站上下載你的整個解決方案,我們必須等待下載它(更不用說我們大多數人都是關於下載未知文件的安全意識)。

祝你好運。

+0

當然,這裏後會做你說的,謝謝,它的工作 – 2010-03-17 03:42:30

0

標準WPF?沒門。

爲什麼?你不會傳遞值。您只需在按鈕上定義的元素(按鈕)獲取點擊項目上的單擊事件(僅限於),然後在代碼中訪問其他元素,因此也必須在代碼中定義(標準方式)並通過稱爲「屬性」的東西公開它們的值,或者通過名稱獲取控件並提取值。但是你不會傳遞任何額外的數據。

看教程;)

如果你想通過周圍值的點擊方法,你需要使用像卡利(http://www.codeplex.com/caliburn),它可以讓你的點擊地圖上的方法和搶從其他控件傳入該方法的值。

+0

我也嘗試過,但它不工作,你可以看看附加項目在給定的外觀,這裏有一個按鈕,當我clik這個我會傳遞一些值到usercontrol文本框,我可以得到價值在用戶控制,但我無法將值綁定到文本框 http://www.easy-share.com/1909552056/InfoBox.rar – 2010-03-15 09:43:01

+0

不,很抱歉,不會爲你做你的工作;)我在一個企業防火牆後面) – TomTom 2010-03-15 09:49:43

0

只需創建一個依賴屬性並將Porperty綁定到UserControl的TextBox。創建對象本身時,將該值分配給Usercontrol的依賴項屬性。

+0

我也試過,但它不工作,你可以在給定的外觀看看附加的項目,這裏有一個按鈕,當我克服這個我會傳遞一些值給用戶控件文本框中,我可以得到用戶控制的值,但我無法將值綁定到文本框 http://www.easy-share.com/1909552056/InfoBox.rar – 2010-03-15 09:42:21

+0

否則你可以告訴ny如何爲usercontorl使用依賴對象的示例? – 2010-03-15 10:04:07

+0

只是下載樣品,並看到 http://www.zshare.net/download/7380778840f0b8ab/ – 2010-03-17 07:23:32

相關問題