|
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Gantt.SelectedItems.CollectionChanged += SelectedItems_CollectionChanged;
}
private void SelectedItems_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
}
} |
|
<sync:GanttControl x:Name="Gantt" ItemsSource="{Binding TaskCollection}"
VisualStyle="Metro" >
<sync:GanttControl.TaskAttributeMapping>
<sync:TaskAttributeMapping TaskIdMapping="TaskId"
TaskNameMapping="TaskName"
StartDateMapping="StartDate"
ChildMapping="Child"
FinishDateMapping="FinishDate"
DurationMapping="Duration"
MileStoneMapping="IsMileStone"
ProgressMapping="Progress"
PredecessorMapping="Predecessor"/>
</sync:GanttControl.TaskAttributeMapping>
</sync:GanttControl> |
|
<sync:GanttControl x:Name="Gantt" Loaded="Gantt_Loaded"
ItemsSource="{Binding TaskCollection}"
VisualStyle="Metro" >
...
</sync:GanttControl> |
|
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Gantt.SelectedItems.CollectionChanged += SelectedItems_CollectionChanged;
}
private void SelectedItems_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
}
private void Gantt_Loaded(object sender, RoutedEventArgs e)
{
this.Gantt.GanttGrid.Model.Options.ListBoxSelectionMode = Syncfusion.Windows.Controls.Grid.GridSelectionMode.One;
}
} |
|
<sync:GanttControl x:Name="Gantt" HighlightedItems="{Binding HighlightedTasks}" GridWidth="0"
ItemsSource="{Binding TaskCollection}"
VisualStyle="Metro"
>
...
</sync:GanttControl> |
|
public partial class MainWindow : Window
{
...
private void SelectedItems_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
if (this.Gantt.SelectedItems != null && this.Gantt.SelectedItems.Count != 0)
{
var selectedItem = this.Gantt.SelectedItems[0] as TaskDetails;
var highlightedTask = (this.DataContext as ViewModel).HighlightedTasks;
if (highlightedTask.Count>0 && highlightedTask.Contains(selectedItem))
{
//If you again clicked the selected item, it will get reset here
highlightedTask.Remove(selectedItem);
}
else
{
highlightedTask.Add(selectedItem);
}
}
}
} |
|
<sync:GanttControl x:Name="Gantt"
HighlightedItems="{Binding HighlightedTasks}"
ItemsSource="{Binding TaskCollection}"
…
PreviewMouseLeftButtonDown="Gantt_PreviewMouseLeftButtonDown">
…
</sync:GanttControl> |
|
private void Gantt_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, new Action(UpdateSelectedItem));
}
…
private void UpdateSelectedItem()
{
var highlightedTasks = (this.DataContext as ViewModel).HighlightedTasks;
if (this.Gantt.SelectedItems != null && this.Gantt.SelectedItems.Count != 0)
{
var selectedItem = this.Gantt.SelectedItems[0] as TaskDetails;
if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
{
if (highlightedTasks.Count > 0 && highlightedTasks.Contains(selectedItem))
{
// If click on the already selected item, then unselected it.
highlightedTasks.Remove(selectedItem);
}
else
{
// Select multiple items.
highlightedTasks.Add(selectedItem);
}
}
else
{
// If cntrl key is not pressed, then clear the old, selected items and select current item.
highlightedTasks.Clear();
highlightedTasks.Add(selectedItem);
}
}
else
{
// Clear the selected items when click on the same element.
highlightedTasks.Clear();
}
} |