zoukankan      html  css  js  c++  java
  • WPF之Binding基础九 使用ObjectDataProvider作为Binding的源

      如果我们需要将方法的返回值Binding一下,那就可以使用ObjectDataProvider作为Binding的源

    XAML代码

    <Window x:Class="使用ObjectDataProvider作为Binding的源.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">
    <StackPanel Background="LightBlue">
    <TextBox x:Name="txt1" Margin="5"/>
    <TextBox x:Name="txt2" Margin="5"/>
    <TextBox x:Name="txtresult" Margin="5"/>
    </StackPanel>
    </Window>

    CS代码

    namespace 使用ObjectDataProvider作为Binding的源
    {
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
    public MainWindow()
    {
    InitializeComponent();

    ObjectDataProvider odp = new ObjectDataProvider();
    //把一个Add对象赋值给ObjectInstantce这个属性
    odp.ObjectInstance = new Add();
    //将使用的方法名字赋值给MethodName属性
    odp.MethodName = "Jia";
    //两个参数,要是重载的化,就根据这快给不用的参数就行
    odp.MethodParameters.Add("0");
    odp.MethodParameters.Add("0");

    Binding bind1 = new Binding("MethodParameters[0]")
    {
    Source=odp,
    BindsDirectlyToSource=true,
    UpdateSourceTrigger=UpdateSourceTrigger.PropertyChanged
    };
    Binding bind2 = new Binding("MethodParameters[1]")
    {
    Source = odp,
    BindsDirectlyToSource = true,
    UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
    };

    Binding result = new Binding(".") { Source=odp};

    this.txt1.SetBinding(TextBox.TextProperty, bind1);
    this.txt2.SetBinding(TextBox.TextProperty, bind2);
    this.txtresult.SetBinding(TextBox.TextProperty, result);
    }
    }
    }

    Add类(添加的方法)

    namespace 使用ObjectDataProvider作为Binding的源
    {
    class Add
    {
    public string Jia(string str1,string str2)
    {
    double x = 0;
    double y = 0;
    double z = 0;
    if(double.TryParse(str1,out x) && double.TryParse(str2,out y)){
    z = x + y;
    return z.ToString();
    }
    return "异常了";
    }
    }
    }

  • 相关阅读:
    VMware虚拟机中调整Linux分区大小手记(转发)
    Linux下查看文件和文件夹大小的df和du命令
    Hadoop 安装 (4) SSH无密码验证配置
    Hadoop 安装(3) JDK 的安装
    Hadoop安装(2)安装hadoop 前的centos 设置
    Hadoop 安装大纲
    Hadoop 安装(1) CENTOS 安装与配置
    WLW 截屏插件
    查看Myeclipse中集成的Eclipse的版本号
    Quartz关闭Tomcat时异常:The web application [/****] appears to have started a thread named [startQuertz_Worker-1] buthas
  • 原文地址:https://www.cnblogs.com/lijin/p/3150699.html
Copyright © 2011-2022 走看看