2012-12-26 85 views
-1

我有XAML代碼:在C#WPF數據綁定TooWay XAML與C#和C#爲XAML

<TextBox Name="textBoxMask1"/> 
<TextBox Name="textBoxMask2"/> 
<TextBox Name="textBoxMask3"/> 
... 
<TextBox Name="textBoxMask9"/> 

和類:

private static string mask1; 
public static string Mask1 
{ 
    get { return mask1; } 
    set { mask1 = value; } 
} 

private static string mask2; 
public static string Mask2 
{ 
    get { return mask2; } 
    set { mask2 = value; } 
} 

private static string mask3; 
public static string Mask3 
{ 
    get { return mask3; } 
    set { mask3 = value; } 
} 
.... 
private static string mask9; 
public static string Mask9 
{ 
    get { return mask9; } 
    set { mask9 = value; } 
} 

我要綁定這些文本框與屬性 - > textBoxMask1與Mask1等 早些時候,我通過TextChanged做到了這一點,但我想製作Binding。 TooWay Binding,因爲我想在另一個C#類中預先定義Mask1,Mask2,Mask3,...,Mask9,並且可能稍後改變這些值 - 也在一些C#代碼中 - 我希望我的更改能夠在佈局中顯示(XAML )和C#代碼 - 如此。從C#中更改Property Mask1將更改TextBox textBoxMask1中的Text,並且更改textBoxMask1中的Text將更改Property Mask1。 我不明白,如何使對象XAML和C#之間的連接(綁定)。

+2

你讀過這篇文章嗎? http://msdn.microsoft.com/en-us/library/ms752347.aspx –

回答

0

對於一個普通的綁定,你不需要你的屬性是靜態的,只是公開的。下面一個例子:

C#代碼(一個屬性)

private string mask1; 
public string Mask1 
{ 
    get { return mask1; } 
    set 
     { 
      mask2 = value; 
      RaisePropertyChanged("Mask1"); 
     } 
} 

這對綁定包含屬性的類實現INotifyPropertyChanged接口真的很重要,而且你籌集的二傳手相應的事件每個屬性。另一個選擇是使所有屬性DependecyProperty,但它通常是矯枉過正。

對於XAML:

<TextBox Name="textBoxMask1" Text="{Binding Mask1, Mode=TwoWay}"/> 

(雙向綁定是Text屬性的默認,但它不會傷害到把它明確)。

只要確保包含您TexBoxes對象的DataContext的(通常是用戶控件)設置爲你的C#類的有效實例。

順便說一下,這是一個非常基本的問題,這就是爲什麼你在我的面前得到否定的投票和沒有答案。所期望的是,你問一個問題,給你一個真正的問題,並有一個非常具體的答案,而不是像「教我如何做到這一點」。

如果這個回答你的問題,不要忘記將其標記爲答案(「嘀」標誌貼在左上角)。投票贊成也將不勝感激。

希望它有幫助,問候。