Skip to main content
All docs
V25.1
  • SankeyDiagramControl.DataSource Property

    Specifies the object from which the Sankey Diagram Control retrieves its data items.

    Namespace: DevExpress.Xpf.Charts.Sankey

    Assembly: DevExpress.Xpf.Charts.v25.1.dll

    NuGet Package: DevExpress.Wpf.Charts

    Declaration

    public object DataSource { get; set; }

    Property Value

    Type Description
    Object

    The data source object.

    Remarks

    You can set the DataSource property to an object that implements any of the following interfaces: IList, IListSource, or IBindingList.

    To bind Sankey Diagram Control to a data source, you also need to specify the names of data members that store data for source nodes, target nodes, and weights:

    • SourceDataMember - Specifies the name of a data member that contains source node labels.

    • TargetDataMember - Specifies the name of a data member that contains target node labels.

    • WeightDataMember (Optional) - Specifies the name of a data member that contains link weights. If the WeightDataMember property is not specified, weights are equal to 1.

    <Window
            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:SankeySample"
            xmlns:dxsa="http://schemas.devexpress.com/winfx/2008/xaml/sankey" 
            x:Class="SankeySample.MainWindow"
            mc:Ignorable="d"
            Title="MainWindow" Height="450" Width="800">
        <Grid>
            <dxsa:SankeyDiagramControl DataSource="{Binding Data}" 
                                       SourceDataMember="Source" 
                                       TargetDataMember="Target" 
                                       WeightDataMember="Value">
                <dxsa:SankeyDiagramControl.DataContext>
                    <local:SankeyViewModel/>
                </dxsa:SankeyDiagramControl.DataContext>
            </dxsa:SankeyDiagramControl>
        </Grid>
    </Window>
    
    using System.Collections.Generic;
    using System.Windows;
    
    namespace SankeySample {
    //...
        public class SankeyViewModel {
            public List<SankeyItem> Data {
                get { return GetData(); }
            }
            public List<SankeyItem> GetData() {
                List<SankeyItem> data = new List<SankeyItem>{                
                    new SankeyItem { Source = "France", Target = "UK", Value = 53 },
                    new SankeyItem { Source = "Australia", Target = "UK", Value = 72 },
                    new SankeyItem { Source = "France", Target = "Canada", Value = 81 },
                    new SankeyItem { Source = "China", Target = "Canada", Value = 96 },
                    new SankeyItem { Source = "UK", Target = "France", Value = 61 },
                    new SankeyItem { Source = "Canada", Target = "France", Value = 89 } 
                };
                return data;
            }
        }
        public class SankeyItem {
            public string Source { get; set; }
            public string Target { get; set; }
            public double Value { get; set; }
        }
    }
    

    Result:

    See Also