在开发中经常需要将后台数据对象直接绑定到前台XAML,可以通过在<Window.Resources>添加对象的定义,然后再XAML中就可以使用该对象了。比如需要在前台使用自定义的Person类。
public class Person { private string _name = "张三"; public Person() { } public string Name1 { get { return _name; } set { this._name = value; } } }
在前台引用
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication2"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<local:Person x:Key="MyPerson" />
</Window.Resources>
<Grid>
<TextBox Width="100" Height="25">
<TextBox.Text>
<Binding Source="{StaticResource MyPerson}" Path="Name1"/>
</TextBox.Text>
</TextBox>
</Grid>
</Window>
即可完成对应关系的绑定
或者使用在前台使用ObjectDataProvider完成绑定
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication2"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<ObjectDataProvider x:Key="odp" ObjectType="{x:Type local:Person}" />
</Window.Resources>
<Grid>
<TextBox Width="100" Height="25">
<TextBox.Text>
<Binding Source="{StaticResource odp}" Path="Name1"/>
</TextBox.Text>
</TextBox>
</Grid>
</Window>
也可以完成对应关系的绑定