wpf 对象绑定到Xaml

在开发中经常需要将后台数据对象直接绑定到前台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>

也可以完成对应关系的绑定

posted @ 2017-07-03 16:05  清晨时光  阅读(1959)  评论(0编辑  收藏  举报