2009-04-17 36 views
0

如何將兩個TextBox對象綁定到System.Windows.Sizestruct? 只有在這個方向上的工作的結合:將多個TextBoxes綁定到WPF中的一個結構中

(textBox1.Text + textBox2.Text)=>(大小)

用戶插入後在UI上尺寸對象在文本框的寬度和高度應該創建。

XAML:

<TextBox Name="textBox_Width" Text="{Binding ???}" /> 
<TextBox Name="textBox_Height" Text="{Binding ???}" /> 

C#:

private Size size 
{ 
    get; 
    set; 
} 

是否有一個簡單的方法來做到這一點?

編輯:大小是一個結構!因此「someObject.Size.Width = 123」不起作用。我需要調用的尺寸,構造和設置someObject.Size =新尺寸

回答

3

你不能只需從模型中顯示2個屬性 - 寬度和高度以及尺寸屬性。寬度和高度將顯示在您的{Binding}表達式中,然後當您想要獲取size屬性時,會根據這兩個字段進行初始化。

例如,你的模型可能類似於;

public class MyModel 
{ 
    public int Width{ get; set; } 
    public int Height{ get; set; } 

    public Size Size{ get{ return new Size(Width, Height); }} 
}; 

希望這會有所幫助。

Tony

0

Window1.xaml.cs

public partial class Window1 : Window 
{ 
    public static readonly DependencyProperty SizeProperty = DependencyProperty.Register("Size", 
     typeof(Size), 
     typeof(Window1)); 

    public Size Size 
    { 
     get { return (Size)GetValue(SizeProperty); } 
     set { SetValue(SizeProperty, value); } 
    } 

    public Window1() 
    { 
     InitializeComponent(); 
     DataContext = this; 
     _button.Click += new RoutedEventHandler(_button_Click); 
    } 

    void _button_Click(object sender, RoutedEventArgs e) 
    { 
     MessageBox.Show(Size.ToString()); 
    } 
} 

Window1.xaml

<Window x:Class="WpfApplication1.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1" Height="300" Width="300"> 
    <StackPanel> 
     <TextBox Text="{Binding Size.Width}"/> 
     <TextBox Text="{Binding Size.Height}"/> 
     <Button x:Name="_button">Show Size</Button> 
    </StackPanel> 
</Window> 
相關問題