我正在使用RadGanttView
。这是我的代码:
foreach (string[] data in CreatedClasses.Data_Control.scheduleList)
{
GanttViewDataItem item = new GanttViewDataItem();
item.Start = DateTime.Parse(data[4]); item.End = DateTime.Parse(data[5]);
item.Title = data[2]; item.Tag = data[0]; item.Progress = decimal.Parse(data[9]);
ganttChartSched.Items.Add(item);
}
现在我想禁止用户选择低于项目设置进度的进度。
请有人帮我这个。我似乎找不到ItemProgressChanging的事件。
答案 0 :(得分:0)
用户可以通过上下文菜单更改进度。因此,您需要对其进行修改以防止出现意外的百分比。我建议隐藏默认的Progress项并添加你自己的。这是一个例子:
void radGanttView1_ContextMenuOpening(object sender, GanttViewContextMenuOpeningEventArgs e)
{
GanttViewDefaultContextMenu ganttMenu = ((GanttViewDefaultContextMenu)e.Menu);
ganttMenu.ShowProgress = false;
RadMenuItem progressItem = new RadMenuItem("Progress");
e.Menu.Items.Add(progressItem);
for (decimal i = 0; i <= 100; i += ganttMenu.ProgressStep)
{
GanttViewMenuItem menuItem = new GanttViewMenuItem(i.ToString(), string.Format("{0:P0}", i / 100));
progressItem.Items.Add(menuItem);
menuItem.IsChecked = e.Item.Progress == i;
menuItem.Click += progressMenuItem_Click;
menuItem.Enabled = i > e.Item.Progress;
}
}
private void progressMenuItem_Click(object sender, EventArgs e)
{
GanttViewMenuItem item = (GanttViewMenuItem)sender;
radGanttView1.GanttViewElement.SelectedItem.Progress = int.Parse(item.Command);
}