Also ich habe eine Liste von "Programme" und ich möchte es so machen, wenn ich eine Taste drücke, wird eine neue Reihe von "Programme" zu meinem DataGrid hinzugefügt, aber ich habe ein Problem Ich kann nicht reparieren, wenn ich eine neue Zeile hinzufüge die Anzahl der Programme beginnt bei Null Ich möchte es von der letzten Nummer fortsetzen.Zeile zu DataGrid hinzufügen nach vorherigen Werten
Hier ist, wie die Zeile hinzugefügt wird:
private void Add_download_Click(object sender, RoutedEventArgs e)
{
for (int a = 0; a < 1; a++)
{
PL.List_Programs.Add(UpdateList(a));
}
}
private Programs UpdateList(int a)
{
Programs P = new Programs();
//Add a way to get the number of currently downloading programs (e.g.: ProgramID + a)
int aAsIDNum = PL.ProgramList().IndexOf();
//Both of these are used to toghter because I cant make a decimal random generator
double RndSizeGen = new Random().Next(10, 50);
int RndSizeGen1 = new Random().Next(1, 9);
//Generates a random number to be used as the progress precent
int RndProgressGen = new Random().Next(10, 80);
Programs _programs = new Programs
{
ProgramID = a,
Name = $"Program{a}",
Size = Convert.ToDouble($"{RndSizeGen}.{RndSizeGen1}"),
Progress = RndProgressGen
};
//Returns the updated list of programs
return _programs;
}
Hier ist die Liste der „Programme:
public ObservableCollection<Programs> List_Programs {get; set;}
public ObservableCollection<Programs> ProgramList()
{
List_Programs = new ObservableCollection<Programs>
{
new Programs { _programid = 1, _name = "Program0", _size = 5.8, _progress = 100 },
new Programs { _programid = 2, _name = "Program1", _size = 7.1, _progress = 36 },
new Programs { _programid = 3, _name = "Program2", _size = 1.4, _progress = 44 },
new Programs { _programid = 4, _name = "Program3", _size = 6.5, _progress = 100 },
new Programs { _programid = 5, _name = "Program4", _size = 2.5, _progress = 89 },
new Programs { _programid = 6, _name = "Program5", _size = 9.6, _progress = 68 },
new Programs { _programid = 7, _name = "Program6", _size = 5.3, _progress = 90 },
new Programs { _programid = 8, _name = "Program7", _size = 2.2, _progress = 100 },
new Programs { _programid = 9, _name = "Program8", _size = 83.7, _progress = 18 }
};
return List_Programs;
}
Und hier sind die Variablen, die ich verwendet:
public class Programs : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void OnProperyChanged(string PropertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(PropertyName));
}
public int _programid;
public int ProgramID
{
get { return _programid; }
set
{
_programid = value;
OnProperyChanged(nameof(ProgramID));
}
}
public string _name;
public string Name
{
get { return _name; }
set
{
_name = value;
OnProperyChanged(nameof(Name));
}
}
public double _size;
public double Size
{
get { return _size; }
set
{
_size = value;
OnProperyChanged(nameof(Size));
}
}
public double _progress;
public double Progress
{
get { return _progress; }
set
{
_progress = value;
OnProperyChanged(nameof(Progress));
}
}
public ICollectionView ProgramsView { get; set; }
}
Datagrid/XAML
<DataGrid x:Name="DG_List" AutoGenerateColumns="False" IsReadOnly="true"
ColumnWidth="*" Grid.Column="3" Grid.RowSpan="3">
</DataGrid >
Sag mir, wenn etwas
Ich bin irgendwie glücklich und traurig zugleich, weil ich für anderthalb Wochen an diesem Problem war und Sie haben es in 2 Minuten beantwortet. Vielen Dank sowieso –