2013-10-22 30 views
0

我有一個Point2D雙精度結構(帶有x和y成員)。我想將Point2D的一個實例綁定到兩個單獨的TextBoxes。我怎樣才能做到這一點?將Point2D綁定到兩個單獨的文本框

任何幫助將不勝感激。謝謝

回答

3

爲什麼使用struct?寫一個類

public class Point2D : INotifyPropertyChanged 
{  
    public event PropertyChangedEventHandler PropertyChanged; 

    private double _x; 
    private double _y;  

    public double X 
    { 
     get { return _x; } 
     set 
     { 
      _x = value; 
      NotifyPropertyChanged("X"); 
     } 
    } 

    public double Y 
    { 
     get { return _y; } 
     set 
     { 
      _y = value; 
      NotifyPropertyChanged("Y"); 
     } 
    } 

    private void NotifyPropertyChanged(string propertyName) 
    { 
     var handler = PropertyChanged; 
     if (handler != null) 
     { 
      handler(this, new PropertyChangedEventArgs(propertyName)); 
     } 
    }  
} 

物業在你的DataContext

public Point2D MyPoint2D { get; set; } 

而在XAML

<TextBox Name="TextBoxValueX" Text="{Binding MyPoint2D.X, UpdateSourceTrigger=PropertyChanged}" /> 
<TextBox Name="TextBoxValueY" Text="{Binding MyPoint2D.Y, UpdateSourceTrigger=PropertyChanged}" /> 

綁定希望它能幫助!

+0

+1此外,由於您實現了INotifyPropertyChanged,因此您還應該添加Text =「{Binding MyPoint2D.X,UpdateSourceTrigger = PropertyChanged}」以及Y. – gleng

+1

您是對的。我編輯了答案:) – phil