精华内容
下载资源
问答
  • wpfpath绑定问题.

    2017-06-02 14:22:47
    现在我想直接用变量名进行绑定 ,替代掉username,也就是wpf绑定时有没有关键字可以实现类似于如下格式的绑定. Binding="{Binding fieldName_username}" 也就是说会将 fieldName_username转成[b]username[/b]再进行...
  • 注意:文本等一般采用双向数据绑定...1.1、WPF中INotifyPropertyChanged用法与数据绑定 https://blog.csdn.net/cselmu9/article/details/8275255(参考博客1) 这篇博客,已经非常详细地介绍INotifyPropertyCha...

    注意:文本等一般采用双向数据绑定,其他的一般采用单向数据绑定

    一、RaisePropertyChanged

    1.1、WPF中INotifyPropertyChanged用法与数据绑定

       https://blog.csdn.net/cselmu9/article/details/8275255参考博客1

            这篇博客,已经非常详细地介绍INotifyPropertyChanged、PropertyChanged如何在后台代码中,通过事件的方式,来通知UI更新。

           但是,必须要主要的是,你必须绑定上下文,不然PropertyChanged = null。上下文绑定常用下面的代码就可以绑定,而且必须要注意实例化。

    public MainWindow()
    {
         this.DataContext = this;
    }

    1.2、构造函数为什么要自定上下文才能更新UI。

    参考:https://bbs.csdn.net/topics/391953746?page=1

    https://www.cnblogs.com/guofeiji/p/5277834.html      

            INotifyPropertyChanged的本质是事件,其实现了事件的通知。

            类似这行的代码this.DataContext = this;指定了上下文。否则的话,(参考博客1)也没办法更新UI。为什么呢?因为绑定上文时,C#后台的属性改变时,才通知到UI的控件,然后控件才更新对应的值。即当属性值改变时,触发该事件,从而导致注册该事件的方法被执行,达到通知控件的目的。这是通过事件实现观察者模式。

          更进一步而言,PropertyChangedEventHandler是对接口的INotifyPropertyChanged的实现,该接口定义了下面的事件,当属性发生改变时,会触发该事件。

    #region 程序集 System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    // C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.dll
    #endregion
    
    namespace System.ComponentModel
    {
        //
        // 摘要:
        //     向客户端发出某一属性值已更改的通知。
        public interface INotifyPropertyChanged
        {
            //
            // 摘要:
            //     在属性值更改时发生。
            event PropertyChangedEventHandler PropertyChanged;
        }
    }

     二、RaisePropertyChanged和SetProperty都可以根据绑定的方式,实现UI更新

    下面是我的应用举例,大家可以不看。重点还是第一章。

    2.1、RaisePropertyChanged绑定实现

    我们要选中下面的日期了,并通过绑定的方式:

    但是,下面的方法不能更新UI:

     于是,我采用了下面的方式:

     private bool _dpkDateStartIsEnabled;
            /// <summary>
            /// 起始日期是否允许操作
            /// </summary>
            public bool DpkDateStartIsEnabled
            {
                get { return _dpkDateStartIsEnabled; }
                set { _dpkDateStartIsEnabled = value; RaisePropertyChanged("DpkDateStartIsEnabled"); }
            }
    
            private bool _dkDateEndIsEnabled;
            /// <summary>
            /// 终止日期是否允许操作
            /// </summary>
            public bool DkDateEndIsEnabled
            {
                get { return _dkDateEndIsEnabled; }
                set { _dkDateEndIsEnabled = value; RaisePropertyChanged("DkDateEndIsEnabled"); }
            }

    2.2、SetProperty实现

     

     

    展开全文
  • CalcBinding是高级绑定标记扩展,它使您可以在xaml中编写计算的绑定表达式,而无需自定义转换器。 CalcBinding可以自动将布尔值转换为可见性转换,不同的代数运算,逆表达等。 CalcBinding使绑定表达式更短且更易于...
  • WPF绑定

    2012-08-10 15:59:00
    1.WPF绑定的四个基本元素:绑定目标,绑定属性,绑定源,绑定值。 下面用例说明这四个元素之间关系 <TextBox Name="a" Text="ab" ></TextBox> <TextBox Name="b"Text="{Binding ElementName=a,...

    数据绑定是在应用程序界面和业务逻辑之间建立连接的过程。

    1.WPF绑定的四个基本元素:绑定目标,绑定属性,绑定源,绑定值。

    下面用例说明这四个元素之间关系

        <TextBox Name="a" Text="ab" ></TextBox>
        <TextBox Name="b" Text="{Binding ElementName=a,Path=Text,Mode= OneWay}" />

    其中绑定目标是Name="b"的TextBox,它的Text属性就是绑定属性,

    绑定源是Name="a"的TextBox,绑定值就是它的Text。

    2.绑定方式主要有四种:

    (1)OneWay:这种绑定方式当绑定源的绑定值改变时,目标值也会改变。

    (2)OneTime:这种绑定方式只是绑定一次,以后无论源或目标修改都互补影响。

    (3)OneWayToSource:这种绑定,是目标值改变,并通知源值一起改变,源值修改不影响目标。

           它是和OneWay相反的。

    (4)TwoWay:这种方式下,源值和目标值的任何一方修改,都会通知另一方改变,互相都影响对方。

     3.使用绑定

    (1)ListView绑定数组

            <ListView  Name="listView1" VerticalAlignment="Top" 

                      ItemsSource="{Binding}">
            </ListView>

    代码中只要为ListView的DataContext赋值即可,

    string[] words=new string[] {"WPF", "WCF", "WF", "LINQ"};

    this.listView1.DataContext = words;

    (2)DataGrid绑定使用。这个控件可以自己填充列,也可以自定义列。

    默认情况下DataGrid根据绑定数据的属性创建列。

    自定义列,在<DataGrid></DataGrid>之间添加如下代码,

    可以添加标题为Culumn1的列。

                <DataGrid.Columns>

                    <DataGridTextColumn Width="*" Binding="{Binding Column1,Mode=OneWay}" Header="Column1">               
                    </DataGridTextColumn>

                </DataGrid.Columns>

    在使用DataGrid时候,可能会这样的问题:

    问题1:最后一行是多出来的空白行

    解决办法: CanUserAddRows="False"

    问题2:最后一列是多出来的空白列

    解决办法:将最后的DataGridTextColumn中Width属性设置"*",即: Width="*"

            <DataGrid AutoGenerateColumns="False" 

                       Name="dataGrid1" 

                      ItemsSource="{Binding}"

                     CanUserAddRows="False">

                <DataGrid.Columns>

                    <DataGridTextColumn Width="*" Binding="{Binding Column1,Mode=OneWay}" Header="Column1">               
                    </DataGridTextColumn>

                </DataGrid.Columns>

            </DataGrid>
       

    转载于:https://www.cnblogs.com/liujp/archive/2012/08/10/2632040.html

    展开全文
  • WPF 绑定父类属性

    2018-08-14 10:01:00
    WPF 绑定父类属性 原文:WPF 绑定父类属性1.绑定父控件的属性. 1 <ContextMenu x:Key="ContextMenuColoum"> 2 <MenuItem Header="复制" Tag="{Binding Path=Text,RelativeSource={ R...
    原文:WPF 绑定父类属性

    1.绑定父控件的属性.

    1 <ContextMenu x:Key="ContextMenuColoum">
    2             <MenuItem Header="复制"    Tag="{Binding Path=Text,RelativeSource={  RelativeSource  Mode=FindAncestor, AncestorType={x:Type TextBlock}, AncestorLevel=1 }}"   Click="MenCopy_Click" >
    3                 <MenuItem.CommandBindings>
    4                     <CommandBinding CanExecute="CommandBinding_CanExecute" Executed="CommandBinding_Executed" Command="Copy">
    5                     </CommandBinding>
    6                 </MenuItem.CommandBindings>
    7             </MenuItem>
    8         </ContextMenu>
    9         

    发现问题,父控件的属性如果是后期加载的,别如说Width或者Height不是固定的数值,那么绑定时没有效果的。

    2.放窗口的大小发生改变,比如最大化,或者正常,Canvas的定位会出现偏差,解决方法?

    放弃使用定位方式。。就是没有找到解决办法。。。太菜了我。

    posted on 2018-08-14 10:01 NET未来之路 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/lonelyxmas/p/9472845.html

    展开全文
  • WPF 绑定枚举值

    2018-07-11 13:26:00
    原文:WPF 绑定枚举值前台Xaml  &lt;ComboBox x:Name="cmboxStretch" Width="120" Height="35" HorizontalAlignment="Left" Margin="5 0 0 0" ...
    原文:WPF 绑定枚举值

    前台Xaml      

      <ComboBox x:Name="cmboxStretch"  Width="120" Height="35" HorizontalAlignment="Left" Margin="5 0 0 0"
                                 SelectedItem="{Binding Path=Stretch}"
                                 VerticalContentAlignment="Center">
                </ComboBox>
      <Viewbox Stretch="{Binding SelectedValue,ElementName=cmboxStretch}" Grid.Row="1" x:Name="viewBox">
      </Viewbox>

    后台代码     

     cmboxStretch.ItemsSource= System.Enum.GetValues(typeof(Stretch));

    选择Combox就能看到ViewBox属性值Stretch在变化了。

    展开全文
  • MVVM WPF 绑定颜色

    2020-07-16 17:38:32
    <Button Margin="2" Width="10" > <Button.Background> <SolidColorBrush Color="{Binding Path=MarkColor}"><.
  • WPF绑定方式

    2012-03-20 23:01:00
    1.stu = new Student();Binding binding = new Binding();...binding.Path = new PropertyPath("Name");BindingOperations.SetBinding(this.textBoxName, TextBox.TextProperty, binding);或者thi...
  • 初探WPF绑定和资源

    2019-09-24 14:42:44
    废话不说看下面代码你就懂!...ListBoxItem Content="{Binding Path=StuID}" Style="{StaticResource Sty1}" /> <ListBoxItem Content="{Binding Path=StuName}" Style="{Binding Source={StaticResou...
  • WPF 绑定数据方式

    2016-04-14 14:26:00
    ========================================================================Foreground="{Binding Path=Foreground, RelativeSource={RelativeSource AncestorType={x:Type ListBoxItem}}}" =================...
  • WPF 绑定 in Code

    2009-10-30 17:27:00
    Binding binding = new Binding();... //设置绑定源binding.Path = new PropertyPath("Text"); //设置绑定属性this.TextBox2.SetBinding(TextBox.TextProperty, binding); //设置控件绑定 转载...
  • WPFpath的小细节

    千次阅读 2014-01-14 14:17:43
    今天遇到一个小问题,在这里与大家分享下,几个容易混淆的path格式。...第一行的path 和第二行的path绑定的结果相同,都表示绑定到这个集合。 第三行的path绑定有点意思,它绑定的是当前集合中的项目。 />
  • Command="{Binding ConfirmRegisterCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self},Path=DataContext}" 一.FindAncestor 有时候我们不确定作为数据源的对象叫什么名字...
  • 1.我们可以用数据模版实现添加按钮 <ListView x:Name="Liv"> <ListView.View> <GridView>...GridViewColumn Header="Index" DisplayMemberBinding="{Binding Path=Index}" /> ...
  • WPF 绑定-----学习笔记

    2017-07-07 16:28:00
    1.绑定实现了数据驱动View. 2.绑定涉及到四个部分。源,路径,目标,目标属性。 绑定源:标识源属性所在的类型实例。 路径(path):指示源中的属性。也就是说,目标对象的数据从何而来。 path属性值是源...
  • WPF 元素绑定

    2019-10-06 09:55:07
    1.什么是数据绑定数据绑定是一种关系,WPF程序从源对象中提取一些信息,并根据这些信息设置目标对象的属性,目标属性作为依赖项属性。源对象可以是任何内容,可以是另一个wpf内容,甚至是自行创建的纯数据对象。 ...
  • WPF数据绑定-用XAML绑定

    千次阅读 2017-03-28 21:42:39
    用XAML绑定   WPF元素不仅是数据绑定的目标,它还可以是绑定的源。 可以把一个WPF元素的源属性绑定到另一个WPF...ElementName指向绑定源,Path指向源属性 此处CheckBox为绑定源,IsChecked为源属性,Label为目标
  • WPF元素绑定笔记

    2019-11-16 10:37:57
    WPF中关于元素绑定 利用元素到元素的绑定实现交互方式的自动化 表达式绑定中,Path 可以指向属性,也可以指向属性使用的索引器(如Content.Children[0]),可构建具有多级层次的路径,使其指向属性的属性,以此类推 ...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 263
精华内容 105
热门标签
关键字:

wpf绑定path