为此使用绑定(您有单向和双向绑定,在这种情况下,您可能正在寻找双向绑定)。
也看这里:msdn教程,你可以保留一个xaml绑定备忘单:)。
一些基本的例子。我所做的是设置数据上下文,在这种情况下,我将其设置为 MainWindow 类(本身),但是您可以轻松地将其设置为您的视图模型。然后我将值绑定MyFoo.MyString
到文本框的文本属性。
按钮和其他文本字段用于说明两种方式绑定的工作方式(在这种情况下,它甚至是默认设置)。
XAML:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525"
DataContext="{Binding RelativeSource={RelativeSource Self}}">
<Grid>
<TextBox Height="23" HorizontalAlignment="Left" Margin="12,12,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" Text="{Binding MyFoo.MyString}" />
<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="12,41,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="12,70,0,0" Name="textBox2" VerticalAlignment="Top" Width="120" IsEnabled="False" Text="Init" />
</Grid>
</Window>
创建一个Foo
具有以下定义的类:
public class Foo
{
public string MyString { get; set; }
}
在你的 MainWindow 代码后面,你有这个:
public partial class MainWindow : Window
{
public Foo MyFoo { get; set; }
public MainWindow()
{
MyFoo = new Foo() { MyString = "Hello" };
InitializeComponent();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
textBox2.Text = MyFoo.MyString;
}
}
这只是一个快速而肮脏的例子。我想你可以弄清楚其余的,否则:看看周围,有很多关于 WPF 中数据绑定的信息。