All docs
V21.2
21.2
21.1
20.2
20.1
19.2
The page you are viewing does not exist in version 19.2. This link will take you to the root page.
19.1
The page you are viewing does not exist in version 19.1. This link will take you to the root page.
18.2
The page you are viewing does not exist in version 18.2. This link will take you to the root page.
18.1
The page you are viewing does not exist in version 18.1. This link will take you to the root page.
17.2
The page you are viewing does not exist in version 17.2. This link will take you to the root page.

GanttView.ResourceLinksSelector Property

Gets or sets an object that chooses resource links relative to a task object based on custom logic. This is a dependency property.

Namespace: DevExpress.Xpf.Gantt

Assembly: DevExpress.Xpf.Gantt.v21.2.dll

Declaration

public IResourceLinksSelector ResourceLinksSelector { get; set; }

Property Value

Type Description
IResourceLinksSelector

An object that chooses resource links based on custom logic.

Remarks

<dxgn:GanttControl ItemsSource="{Binding Tasks}">
    <dxgn:GanttControl.Columns>
        <dxgn:GanttColumn BindTo="Name" />
        <dxgn:GanttColumn BindTo="StartDate" />
        <dxgn:GanttColumn BindTo="FinishDate" />
        <dxgn:GanttColumn BindTo="ResourceLinks" />
    </dxgn:GanttControl.Columns>
    <dxgn:GanttControl.View>
        <dxgn:GanttView
            AutoExpandAllNodes="True"
            AllowEditing="False"
            ResourcesSource="{Binding Resources}"
            ResourceLinksSelector="{local:ResourceLinksSelector}">
        </dxgn:GanttView>
    </dxgn:GanttControl.View>
</dxgn:GanttControl> 
public class ResourceLinksSelector : MarkupExtension, DevExpress.Xpf.Gantt.IResourceLinksSelector {
    public override object ProvideValue(IServiceProvider serviceProvider) {
        return this;
    }
    public IEnumerable SelectResourceLinks(object item) {
        var task = (GanttTask)item;
        if(task.Tag == null)
            return null;
        return ((string)task.Tag)
            .Split(';')
            .Select(x => new GanttResourceLink() { ResourceId = Convert.ToInt32(x) })
            .ToList();
    }
} 
Show View Model
public class ProjectTaskViewModel {
    public ProjectTaskViewModel() {
        Tasks = new ObservableCollection<GanttTask> {
            new GanttTask() {
                Id = 0,
                Name = "Add a new feature",
                StartDate = DateTime.Now.AddDays(-1),
                FinishDate = DateTime.Now.AddDays(6)
            },

            new GanttTask() {
                Id = 1,
                ParentId = 0,
                Name = "Write the code",
                StartDate = DateTime.Now.AddDays(-1),
                FinishDate = DateTime.Now.AddDays(2),
                Tag = "1"
            },

            new GanttTask() {
                Id = 2,
                ParentId = 0,
                Name = "Write the docs",
                StartDate = DateTime.Now.AddDays(2),
                FinishDate = DateTime.Now.AddDays(5),
                Tag = "2"
            },

            new GanttTask() {
                Id = 3,
                ParentId = 0,
                Name = "Test the new feature",
                StartDate = DateTime.Now.AddDays(2),
                FinishDate = DateTime.Now.AddDays(5),
                Tag = "3"
            },

            new GanttTask() {
                Id = 4,
                ParentId = 0,
                Name = "Release the new feature",
                StartDate = DateTime.Now.AddDays(5),
                FinishDate = DateTime.Now.AddDays(5),
                Tag = "1;2;3;4"
            }
        };

        Resources = new ObservableCollection<GanttResource> {
            new GanttResource() { Name = "Developers", Id = 1 },
            new GanttResource() { Name = "Technical Writers", Id = 2 },
            new GanttResource() { Name = "Testers", Id = 3 },
            new GanttResource() { Name = "Product Manager", Id = 4 }
        };

    }
    public ObservableCollection<GanttTask> Tasks { get; }
    public ObservableCollection<GanttResource> Resources { get; }
} 

See Also