none
关于Binding和path的用法 RRS feed

  • 问题

  • 在使用Toolkit Chart的过程中,图表显示时候常用到binding,例如

    IndependentValueBinding="{Binding X}" 

    DependentValueBinding="{Binding Y}"

    但一个Series中会有IndependentValueBinding和IndependentValuePath,在使用时候,有时候是

    IndependentValueBinding="{Binding X}"

    有时候又是

    IndependentValueBinding="X"

    或者

    IndependentValueBinding.Source = “{Binding X}”

    或者

    IndependentValueBinding.Source = “{Binding Path = X}”

    究竟Binding和Path之间的关系是如何的,什么情况下需要指定Binding或者path,

    在什么情况下又不需要用,不知道能否简单帮梳理一下?

    谢谢


    2012年6月5日 17:04

答案

  • 在Chart中,ValuePath或者ValueBinding 两者有其一就可以了,他们的源码如下,你可以看出ValueBinding 其实就是一个Binding类型的属性。ValuePath只是直接生成了一个Binding类型实例然后设置他的Path而已,所以是一样的。http://wpf.codeplex.com/SourceControl/changeset/view/40156#564328

    DataPointSeries.cs:

    /// <summary>
    /// The binding used to identify the independent value binding.
    /// </summary>
    private Binding _independentValueBinding;
    
    /// <summary>
    /// Gets or sets the Binding to use for identifying the independent value.
    /// </summary>
    public Binding IndependentValueBinding
    {
        get
        {
            return _independentValueBinding;
        }
        set
        {
            if (_independentValueBinding != value)
            {
                _independentValueBinding = value;
                Refresh();
            }
        }
    }
    
    /// <summary>
    /// Gets or sets the Binding Path to use for identifying the independent value.
    /// </summary>
    public string IndependentValuePath
    {
        get
        {
            return (null != IndependentValueBinding) ? IndependentValueBinding.Path.Path : null;
        }
        set
        {
            if (null == value)
            {
                IndependentValueBinding = null;
            }
            else
            {
                IndependentValueBinding = new Binding(value);
            }
        }
    }


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    • 已标记为答案 wanto_com 2012年6月6日 15:18
    2012年6月6日 8:40
    版主

全部回复

  • 据我所知,path 是 Binding的一个属性。
    http://msdn.microsoft.com/zh-cn/library/system.windows.data.binding.path.aspx

    Path 属性。
    http://msdn.microsoft.com/zh-cn/library/ms752347.aspx


    Please Mark it as answer, if it helps solve your problem.


    • 已编辑 Phape 2012年6月6日 2:59
    2012年6月6日 2:55
  • 在Chart中,ValuePath或者ValueBinding 两者有其一就可以了,他们的源码如下,你可以看出ValueBinding 其实就是一个Binding类型的属性。ValuePath只是直接生成了一个Binding类型实例然后设置他的Path而已,所以是一样的。http://wpf.codeplex.com/SourceControl/changeset/view/40156#564328

    DataPointSeries.cs:

    /// <summary>
    /// The binding used to identify the independent value binding.
    /// </summary>
    private Binding _independentValueBinding;
    
    /// <summary>
    /// Gets or sets the Binding to use for identifying the independent value.
    /// </summary>
    public Binding IndependentValueBinding
    {
        get
        {
            return _independentValueBinding;
        }
        set
        {
            if (_independentValueBinding != value)
            {
                _independentValueBinding = value;
                Refresh();
            }
        }
    }
    
    /// <summary>
    /// Gets or sets the Binding Path to use for identifying the independent value.
    /// </summary>
    public string IndependentValuePath
    {
        get
        {
            return (null != IndependentValueBinding) ? IndependentValueBinding.Path.Path : null;
        }
        set
        {
            if (null == value)
            {
                IndependentValueBinding = null;
            }
            else
            {
                IndependentValueBinding = new Binding(value);
            }
        }
    }


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    • 已标记为答案 wanto_com 2012年6月6日 15:18
    2012年6月6日 8:40
    版主
  • 谢谢,我会再去细看下文档
    2012年6月6日 15:18