Gantt chart
Hejsa eksperterJeg er ved at oprette et gantchart i wpf og har problemer med at styre de forskellige objekter problemet er at jeg dynamisk opretter objekter, og derefter tegner dem til mit chart når teksten i textfeltet er fjernet.
Men når jeg tilføjer flere objekter så er det den sidste denne event foregår ved, hvordan styrer jeg den så den ved hvilken det er jeg ændrer?
Her er koden der skal statisk oprettes 2 canvas for at compile.
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
AddOperation();
}
public int HeightOperation
{
get;
set;
}
public int OperationCounter
{
get;
set;
}
public TextBox NewOperation;
public TextBox Start;
public TextBox Stop;
public ComboBox Next;
public ArrayList List = new ArrayList();
public void AddOperation()
{
NewOperation = new TextBox();
NewOperation.Width = 100;
NewOperation.Height = 20;
Start = new TextBox();
Start.Width = 60;
Start.Height = 20;
Stop = new TextBox();
Stop.Width = 60;
Stop.Height = 20;
Next = new ComboBox();
Next.Width = 100;
Stop.Height = 20;
NewOperation.Margin = new Thickness(20, (50 + HeightOperation), 0, 0);
Start.Margin = new Thickness(130, (50 + HeightOperation), 0, 0);
Stop.Margin = new Thickness(200, (50 + HeightOperation), 0, 0);
Stop.MouseLeave += new MouseEventHandler(Stop_MouseLeave);
Stop.TextChanged += new TextChangedEventHandler(Stop_TextChanged);
for (int i = 0; i < List.Count; i++)
{
Next.Items.Add(i+1);
}
Next.Margin = new Thickness(270, (50 + HeightOperation), 0, 0);
OperationCanvas.Children.Add(NewOperation);
OperationCanvas.Children.Add(Start);
OperationCanvas.Children.Add(Stop);
OperationCanvas.Children.Add(Next);
HeightOperation += 25;
OperationCounter += 1;
List.Add(OperationCounter);
if (OperationCounter == 15)
{
button1.IsEnabled = false;
}
}
void Stop_TextChanged(object sender, TextChangedEventArgs e)
{
Random ran = new Random();
int Rand00m = ran.Next(0, 500);
Rectangle rect = new Rectangle();
rect.Height = 20;
rect.Width = Rand00m;
rect.ToolTip = "";
//Rounded edges
rect.RadiusX = 0.0;
rect.RadiusY = 0.0;
rect.Margin = new Thickness(20, (50 + HeightOperation), 0, 0);
rect.Stroke = new SolidColorBrush(Colors.Black);
rect.StrokeThickness = 1;
rect.Fill = new SolidColorBrush(Colors.LightSteelBlue);
rect.Visibility = Visibility.Visible;
DrawCanvas.Children.Add(rect);
}
void Stop_MouseLeave(object sender, MouseEventArgs e)
{
}
private void button1_Click(object sender, RoutedEventArgs e)
{
AddOperation();
}
}