zoukankan      html  css  js  c++  java
  • WPF Data Binding数据驱动

    WPF Data Binding数据驱动

    一、简介

    在XAML文件中我们创建了一个TextBlock 和一个Slider。2个控件。我们把TextBlock的Text属性(用于显示文本的属性)设置为{Binding Intelligence}。把Slider的Value属性(滑块的当前值)设置为{Binding Intelligence}。

    二、代码案例

    XMAL:

      <Grid>
            <StackPanel>
                <TextBlock Text="{Binding Intelligence}"/>
                <!--通过数据驱动修改绑定值得属性-->
                <TextBox Text="{Binding Intelligence,Mode=TwoWay}"/>           
                <Slider Minimum="1" Maximum="100" Value="{Binding Intelligence}"/>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="名称:"/>
                    <TextBlock Text="{Binding Name}" MinWidth="120"/>
                    <TextBlock Text="请输入需要修改的名称:"/>
                    <TextBox MinWidth="120" x:Name="tb_inputName"/>
                </StackPanel>
                <!--通过事件驱动修改绑定值得属性-->
                <Button Content="事件驱动修改绑定值。" Click="AlertText_Click"/>
            </StackPanel>
        </Grid>

    后台逻辑:

     public partial class MainWindow : Window
        {
            Person p;
            public MainWindow()
            {
    
                InitializeComponent();
                p = new Person();
                Binding binding = new Binding();
                binding.Source = p;
                binding.Mode = BindingMode.TwoWay;
                binding.Path = new PropertyPath("Name");
                BindingOperations.SetBinding(tb_inputName, TextBox.TextProperty, binding);
                this.DataContext = p;
            }
    
            private void AlertText_Click(object sender, RoutedEventArgs e)
            {
                p.Name = "点击按钮后>>>>";
            }
        }
        public class Person : INotifyPropertyChanged
        {
            private double _intelligence;
            public double Intelligence
            {
                get { return _intelligence; }
                set
                {
                    _intelligence = value;
                    PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Intelligence"));
    
                }
            }
            private string _name;
            public string Name
            {
                get { return _name; }
                set
                {
                    _name = value;
                    PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Name"));
                }
            }
    
            public event PropertyChangedEventHandler PropertyChanged;
        }

    三、运行效果

     

     


    技术的发展日新月异,随着时间推移,无法保证本博客所有内容的正确性。如有误导,请大家见谅,欢迎评论区指正!
    我创建了一个.NET开发交流群,用于分享学习心得和讨论相关技术难题。欢迎有兴趣的小伙伴扫码入群,相互学习!

  • 相关阅读:
    qt中qmake的详解
    教程:从零开始 使用Python进行深度学习!
    win10系统下搭建Python开发环境和TensorFlow深度学习环境(CPU版)
    怎么选择视觉光源颜色
    pycharm安装及设置中文
    新建DataSet和DataTable,并从中提取数据到文本
    网站服务基础面试
    TCP、UDP数据包大小的限制
    TCP的三次握手与四次挥手理解及面试题(很全面)
    zabbix服务深入
  • 原文地址:https://www.cnblogs.com/wml-it/p/14949114.html
Copyright © 2011-2022 走看看