|
public class TaskDetails
{
private ICommand mUpdater;
public ICommand ClickCommand
{
get
{
if (mUpdater == null)
mUpdater = new Updater();
return mUpdater;
}
set
{
mUpdater = value;
}
}
public TaskDetails()
{
Tasks = new ObservableCollection<KanbanModel>();
Tasks.Add(new KanbanModel()
{
Title = "Universal App",
ID = "27654",
Description = "Incorporate feedback into functional specifications",
Category = "Open",
ColorKey = "Low",
Tags = new string[] { "Deployment" },
ImageURL = new Uri("/images/People_Circle1.png", UriKind.RelativeOrAbsolute)
});
…
});
}
public ObservableCollection<KanbanModel> Tasks { get; set; }
}
class Updater : ICommand
{
#region ICommand Members
public bool CanExecute(object parameter)
{
return true;
}
public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
public void Execute(object parameter)
{
var dataContext = (parameter as ColumnTag);
if(dataContext != null)
{
PropertyInfo ColumnGetter = dataContext.GetType().GetProperty("Column", BindingFlags.NonPublic | BindingFlags.Instance);
KanbanColumn kanbanColumn = (KanbanColumn)ColumnGetter.GetValue(dataContext);
//to get its category , getting this first card on column model
var kanbanModel = ((kanbanColumn.Cards[0] as KanbanCardItem).Content as KanbanModel);
kanbanColumn.Items.Add(new KanbanCardItem()
{
//Add your own task details
Content = new KanbanModel()
{
Category = kanbanModel.Category,
Title = kanbanModel.Title+"New",
ID = "1234",
Description = "Newly included task",
ColorKey = "High",
Tags = kanbanModel.Tags,
ImageURL = new Uri("/images/People_Circle4.png", UriKind.RelativeOrAbsolute)
}
});
}
}
#endregion
} |
|
<syncfusion:SfKanban MinColumnWidth="150" x:Name="kanban"
ColumnMappingPath="Category"
ItemsSource="{Binding Tasks}"
AutoGenerateColumns="False">
<syncfusion:SfKanban.ColumnHeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical>
<TextBlock x:Name="label" Text="{Binding Header}" Foreground="Purple" />
<Button Content="Add" Margin="0,10,0,0" Command="{Binding Source={x:Reference kanban},Path=DataContext.ClickCommand}" CommandParameter="{Binding Source={x:Reference label},Path=DataContext}" />
</StackPanel>
</DataTemplate>
</syncfusion:SfKanban.ColumnHeaderTemplate>
<syncfusion:KanbanColumn Categories="Open" Title="To Do" />
<syncfusion:KanbanColumn Categories="In Progress" Title="Progress" />
<syncfusion:KanbanColumn Categories="Review,Done" Title="Done" />
</syncfusion:SfKanban> |