Du könntest zwar Dummy-Objekte zu deiner
UICollectionViewDataSource
hinzufügen (aber dann würde die Anzahl der Spalten auch Einfluß auf die Breite der einzelnen Zellen (Bilder) haben).
Vielen Dank für deine Antwort!
Hat jemand vllt. ein Beispiel dafür?
Danke im Voraus!
Hallo,ich benutze xamarin.ios ich möchte wie auf dem Bild (mit collectionview) machen.Aber ich weiss nur nicht wie ich spalten und zeilenanzahl selber bestimmen kann(aus entwickleraussicht).Ich bekomme durch Json serialisierung spalten und Zeilenanzahl.
Hallo,
ich mache eine App (xamarin ios).Anhand dieser Tutorial (https://www.raywenderlich.com/1044-building-ios-apps-with-xamarin-and-visual-studio) habe ich ein CollectionView implementiert.Aber ich möchte es so machen dass man Spalten- und Zeilenanzahl selber bestimmen kann.Die Grösse von zellen wäre egal.
Hat jemand eine Idee?
Vielen Dank im Voraus!
Hallo,
ich entwickle eine App unter windows mit visual studio für mac.
Ich habe ein Json datei gespeichert(Hier: C:/projects/DataRecorderApp/trunk/1-Anforderungen/KopieAppKonfigurator/AppKonfigurator/AppKonfigurator/bin/Debug/Settings.json)
Aus meiner App will ich die Datei lesen und deserialisieren.Aber den Pfad kann ich nicht finden.
Weiss jemand wie ich meinen Pfad richtig zugreife?
Danke im Voraus!
Fehlermeldung:
Fehler:System.IO.FileNotFoundException: Could not find file "/Users/rer/Library/Developer/CoreSimulator/Devices/F32DBD30-E3A3-4E3C-A525-E59B8D983F74/data/Containers/Bundle/Application/26F2322C-5906-4B38-B1D5-88EFB4237775/DataRecorderApp.app/C:\projects\DataRecorderApp\trunk\1-Anforderungen\KopieAppKonfigurator\AppKonfigurator\AppKonfigurator\bin\Debug\Settings.json "
using (StreamReader r = new StreamReader(@"C:\projects\DataRecorderApp\trunk\1-Anforderungen\KopieAppKonfigurator\AppKonfigurator\AppKonfigurator\bin\Debug\Settings.json "))
{
string z = r.ReadToEnd();
var curTest = JsonConvert.DeserializeObject<Dictionary<string, Charts>>(z);
}
Hallo,
ich habe in meinem storyboard eine Zelle mit 2 Segue. Je nach Bedingung möchte ich andere Viewcontroller aufrufen.Aber wenn ich in der methode PrepareForSegue mache nimmt segue.identifier irgendwie zufälligen identifier von controller.Weiss jemand warum das so ist??
Danke im Voraus
Vielen Dank!
mit
tableView.SelectRow(indexPath, animated: true, scrollPosition: UITableViewScrollPosition.None);
hat es geklappt.
@pinki, Vielen Dank für deine Antwort.Ich weiss aber nicht wie ich das mache,hat jemand vllt. code dazu??
Danke
Hallo,
Ich habe eine Frage zum Tableview cell Button.Ich füge im Getcell methode ein Button.Wenn ich mein Button klicke möchte ich wissen in welche Zelle mein Button sich befindet.Weiss villeicht jemand wie ich das mache??
Danke im Voraus!
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
var cell =tableView.DequeueReusableCell(cellIdentifier);
cell.TextLabel.Text = tableItems[indexPath.Row].Ip;
editButton = UIButton.FromType(UIButtonType.RoundedRect);
editButton.Frame = new RectangleF(200, 10, 150, 40);
editButton.SetTitle("EDIT", UIControlState.Normal);
editButton.Font = UIFont.FromName("Helvetica-Bold", 15f);
cell.AddSubview(editButton);
editButton.TouchUpInside += (sender, e) => {
ipcontroller.PerformSegue("addipsegue", this);
};
if (tableItems[indexPath.Row].Save)//switch on
{ cell.Accessory = UITableViewCellAccessory.Checkmark; }
else
{ cell.Accessory = UITableViewCellAccessory.None; }
return cell;
}
listboxseries_line ist ListBox
dt sieht so aus
Hallo Stefan,
danke für deine Antwort,ja ich habe mit debugger geprüft
Hallo Abt,
danke für deine Antwort.Ja alle werten sind richtig aber nur dt hat den wert {}.
List<Series> line_series = new List<Series>();
Hallo,ich habe versucht mit datatable zu machen aber im code ist mein dt leer!
Könnte jemand mir sagen warum??
private void btnAddNewSeries_Click(object sender, EventArgs e)
{
DataTable datatable = new DataTable();
/* list = JsonConvert.DeserializeObject<Dictionary<string, Example>>(jsonData);
foreach (var value in list)
{
line_series = value.Value.LineChart.series;
*/
Series s1;
int d;
if (line_series.Count < 10 )
{
s1 = new Series { Data = txtSeriesDP_line.Text, Color = txtSeriesColor_line.Text };
if (txtSeriesDP_line == null || string.IsNullOrWhiteSpace(txtSeriesDP_line.Text) ||
txtSeriesColor_line == null || string.IsNullOrWhiteSpace(txtSeriesColor_line.Text) ||
!int.TryParse(txtSeriesDP_line.Text, out d) || !int.TryParse(txtSeriesColor_line.Text, out d))
{
MessageBox.Show("Bitte Series richtig füllen!");
}
else
{
line_series.Add(s1);
}
DataTable dt = new DataTable();
DataColumn column = new DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.ColumnName = "Data";
dt.Columns.Add(column);
DataColumn column1 = new DataColumn();
column1.DataType = System.Type.GetType("System.Int32");
column1.ColumnName = "Color";
dt.Columns.Add(column1);
//dt.Columns.Add(column);
//dt.Columns.Add("Color");
foreach (var item in line_series)
{
DataRow row = dt.NewRow();
row["Data"] = item.Data.ToString(); //item.Data;
row["Color"] =item.Color.ToString();
dt.Rows.Add(row);
}
listBoxSeries_line.DataSource = dt;
//....
Vielen Dank im Voraus
Vielen Dank für deine Antwort,
hast du oder jemand ein Beispiel dafür ich könnte nicht umsetzen,oder gibt es eine andere Möglichkeit datasource etwas hinzufügen ohne zu überschreiben
Danke im Voraus
Hallo, ich füge zu verschiedene diagramme series hinzu.Series werden aber überschrieben, wie kann ich datasource ohne zu überschreiben aktualisieren(etw. hinzufügen)??
private void btnAddNewSeries_Click(object sender, EventArgs e)
{
/* list = JsonConvert.DeserializeObject<Dictionary<string, Example>>(jsonData);
foreach (var value in list)
{
line_series = value.Value.LineChart.series;
*/
Series s1;
int d;
if (line_series.Count < 10 )
{
s1 = new Series { Data = txtSeriesDP_line.Text, Color = txtSeriesColor_line.Text };
if (txtSeriesDP_line == null || string.IsNullOrWhiteSpace(txtSeriesDP_line.Text) ||
txtSeriesColor_line == null || string.IsNullOrWhiteSpace(txtSeriesColor_line.Text) ||
!int.TryParse(txtSeriesDP_line.Text, out d) || !int.TryParse(txtSeriesColor_line.Text, out d))
{
MessageBox.Show("Bitte Series richtig füllen!");
}
else
{
line_series.Add(s1);
}
listBoxSeries_line.DataSource = null;
listBoxSeries_line.DataSource = line_series;
linechart.series = line_series;
txtSeriesColor_line.Clear();
txtSeriesDP_line.Clear();
}
}
Danke im Voraus!
Hallo,
ich speichere listbox einträge als json datei.Und per delete button möchte ich selektierte zeile aus json dictionary löschen.Wie könnte ich selektierte Eintrag löschen?
Danke im Voraus!
List<Series> s = new List<Series>();
public void btnNewSeries_Click(object sender, EventArgs e)
{
Series s1;
int d;
if (s.Count < 10)
{
s1 = new Series { Data = txtSeriesDP.Text, Color = txtSeriesColor.Text };
if (txtSeriesDP == null || string.IsNullOrWhiteSpace(txtSeriesDP.Text) ||
txtSeriesColor == null || string.IsNullOrWhiteSpace(txtSeriesColor.Text) ||
!int.TryParse(txtSeriesDP.Text, out d) || !int.TryParse(txtSeriesColor.Text, out d))
{
MessageBox.Show("Bitte Series richtig füllen!");
}
else
{
s.Add(s1);
}
listBoxSeries_line.DataSource = null;
listBoxSeries_line.DataSource = s;
linechart.series = s;
txtSeriesColor.Clear();
txtSeriesDP.Clear();
}
}
private void btnDeleteSerie_Click(object sender, EventArgs e)
{
string filePath = dir + "Settings.json";
if (!File.Exists(filePath))
{
var myFile = File.Create(filePath);
myFile.Close();
}
// Read existing json data
string jsonData = System.IO.File.ReadAllText(filePath);
// Deserialize to object
Dictionary<string, LineChart> list = JsonConvert.DeserializeObject<Dictionary<string, LineChart>>(jsonData);
//foreach (var item in list)
//{
listBoxSeries_line.Items.RemoveAt(listBoxSeries_line.SelectedItems.IndexOf(listBoxSeries_line.SelectedItems[0]));
//}
}
Ok, vielen Dank!
Morgen,
ich möchte mein listbox einmal mit bindingsource füllen ;
var list = JsonConvert.DeserializeObject<Dictionary<string, Example>>(jsonData)
?? new Dictionary<string, Example>();
// listBox2.DataSource = list.Keys;
listBox2.DataSource = new BindingSource(list, null);
listBox2.DisplayMember = "Key";
listBox2.ValueMember = "Value";
und später einzelne items hinzufügen;
listBox2.Items.Add("Linechart " + index.ToString());//exception
aber ich bekomme fehler > Fehlermeldung:
"Die Items-Sammlung kann nicht geändert werden, wenn die DataSource-Eigenschaft festgelegt ist"
Wie könnte ich das lösen?
Danke im Voraus
Warum liest du die Keys nicht direkt mit list.Keys aus?
Vielen Dank für deine schnelle Antwort,
while (list.ContainsKey("Linechart " + index.ToString()))
{
index++;
}
diese Zeilen mache ich dass ich charts nummerieren kann.Wie ich anders numerieren kann weiss ich nicht.
Um die numerierte Chartnamen in listbox zu zeigen habe ich momentan kein code und weiss immer noch nicht wie ich es mache
Hallo,
ich speichere textbox einträge(für diagramm) in Json.Um die gespeicherte charts bearbeiten zu können muss ich sie in listbox anzeigen lassen
Linechart 1
Linechart 2
Barchart 1
Areachart 1
usw.
Weiss jemand wie ich das machen kann?
Danke im Voraus
int index = 1;
string filePath = dir + "Settings.json";
var setting = new JsonSerializerSettings();
setting.Formatting = Formatting.Indented;
setting.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
setting.NullValueHandling = NullValueHandling.Ignore;
if (!File.Exists(filePath))
{
var myFile = File.Create(filePath);
myFile.Close();
}
// Read existing json data
string jsonData = System.IO.File.ReadAllText(filePath);
// Deserialize to object or create new list
linechart.MaxDatapoint = Int32.Parse(MaxDPtxt_line.Text);
linechart.ChartDataMarkerShowlabel = Helper.SelectedMarker(cmbDMarker_line.SelectedItem.ToString());
linechart.ChartBackgroundColor = Helper.SelectedColor(cmbBGColor_line.SelectedItem.ToString());
linechart.ChartTitleColor = Helper.SelectedColor(cmbTColor_line.SelectedItem.ToString());
linechart.ChartTitle = Titletxt_line.Text;
linechart.Type = Typtxt_line.Text;
linechart.ValueRange = Int32.Parse(valueRangetxt_line.Text);
var list = JsonConvert.DeserializeObject<Dictionary<string, LineChart>>(jsonData)
?? new Dictionary<string, LineChart>();
Dictionary<string, LineChart> points = new Dictionary<string, LineChart>();
while (list.ContainsKey("Linechart " + index.ToString()))
{
index++;
}
if (!list.ContainsKey("Linechart " + index.ToString()))
{
points.Add("Linechart " + index.ToString(), linechart);
foreach (var newpoints in points)
list.Add(newpoints.Key, newpoints.Value);
}
jsonData = JsonConvert.SerializeObject(list, setting);
System.IO.File.WriteAllText(filePath, jsonData);
Versuche mal vorher die
DataSource
zurückzusetzen:listBoxSeries_line.DataSource = null; listBoxSeries_line.DataSource = s;
Vielen Dank TH69,
es hat funktioniert.
Oder die
ToString
-Methode der KlasseSeries
überschreiben (denn die Ausgabe des Klassennamens ist die Voreinstellung), z.B.public override string ToString() { return Data + ", " + Color; }
Und dann die
DisplayMember
-Zuweisung wieder löschen.PS: Wenn du eine tabellenartige Ausgabe haben möchtest, dann nimm ein
DataGridView
zur Ausgabe.
Vielen Dank ich habe Tostring methode hinzugefügt,aber wenn ich in textbox daten eingebe und hinzufügen drücke beim ersten mal werden die werte in listbox hinzugefügt. wenn ich das nochmal mache passiert dann nichts, also nur erste eingegebene werte bleiben stehen .Stimmt irgendwas mit meiner code nicht??
List<Series> s = new List<Series>();
public void btnNewSeries_Click(object sender, EventArgs e)
{
int i = 0;
Series s1;
if (i < 10)
{
s1 = new Series { Data = txtSeriesDP.Text, Color = txtSeriesColor.Text };
if (txtSeriesDP == null || string.IsNullOrWhiteSpace(txtSeriesDP.Text) || txtSeriesColor == null || string.IsNullOrWhiteSpace(txtSeriesColor.Text))
{
MessageBox.Show("series füllen");
}
else
{
s.Add(s1);
i++;
}
}
listBoxSeries_line.DataSource = s;
Vielen Dank für euer Antworten,
irgendwie kriege ich das nicht hin, entschuldigen Sie mich wenn ich unverständlich war,ich versuche mein problem nochmal zu erklären:
wenn ich button "neue serie hinzufügen" drücke muss irgendwie in Listbox farbe&data(über textbox eingegeben) angezeigt werden,die ich dann auch selektieren und löschen kann.
(Es dürfen max 10 Series in listbox sein)
mit
listBoxSeries_line.DataSource = s;
klappt das irgendwie auch nicht.Mit
listBoxSeries_line.DisplayMember = "Data";
kann ich nur ein Member anzeigen lassen.
ich bin für jede Hilfe dankbar.
Hallo,
ich will in meinem Programm Series(enthält Farbe und Data ) für diagramm(mit max 10 series) hinzufügen.Ich habe die buttons "Neue serie hinzufügen","Serie löschen" dann speichere ich alles.Hinzugefügte Serie soll in listbox angezeigt werden,durch selektieren soll die serie wieder gelöscht werden.Wie kann ich series in Listbox anzeigen lassen?
Vielen Dank im Voraus
List<Series> s = new List<Series>();
public void btnNewSeries_Click(object sender, EventArgs e)
{
int i = 0;
Series s1;
if (i < 9)
{
s1 = new Series { Data = txtSeriesDP.Text, Color = txtSeriesColor.Text };
if (txtSeriesDP == null || string.IsNullOrWhiteSpace(txtSeriesDP.Text) || txtSeriesColor == null || string.IsNullOrWhiteSpace(txtSeriesColor.Text))
{
MessageBox.Show("series füllen");
}
else
{
s.Add(s1);
i++;
}
}
linechart.series = s;
// listBoxSeries_line.Items.Add?????
txtSeriesColor.Clear();
txtSeriesDP.Clear();
}
Winforms
System.FormatException: "Die Eingabezeichenfolge hat das falsche Format." //textbox von nicht selektierte tabpage leer
ich habe keine code für meine frage.Nur controls von selecktierte tabpage sieht so aus
foreach (Control control in tabControlXAchse.SelectedTab.Controls)
{
if (control is TextBox)
{....
Ich möchte auf controls von nicht selektierte tabpages zugreifen
Hallo,
wie kann ich auf die elemente(texbox) von NICHT selektierte tabpages zugreifen??In form möchte ich nur gewählte tabpage elemente ausfüllen aber wenn die elemente von nicht selektierte tabpage null zurückgeben kommt fehlermeldung.
Da möchte ich auf die elemente NICHT selektierte tabpages zugreifen und falls sie null sind ignorieren.Habt ihr da eine Lösung?
Danke im Voraus
mit file.Close() funktioniert.Vielen Dank!
Hallo,
ich möchte eine serializer machen.Wenn ich die datei nicht habe soll sie erzeugt werden.Danach möchte ich die Datei lesen.Aber wenn die Datei nicht existiert , wird erzeugt und wirft an der stelle " string jsonData = System.IO.File.ReadAllText(filePath);" ein exception aus:> Fehlermeldung:
"Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird."
if (!File.Exists(filePath))
{
File.Create(filePath);
}
string jsonData = System.IO.File.ReadAllText(filePath);
Weiss jemand warum das so ist?Was ich machen muss?
Danke im Voraus
Du musst das Hauptelement zu der Liste hinzufügen.
x.Add(x1);
Die Alternative ist eine für x1.CategoryAxis unsw eine eigne Liste machen.
Es hat geklappt, Vielen Dank!
Und in eine Liste können nur die Items hinzugefügt werden, die zum Typ passen.
Weiss jemand eine Alternative Lösung wie ich es machen kann??
Danke
Ales aller erstes solltest Du mal den Code aufräumen; da ist allerlei im Argen 😉
>
Ganz arg suboptimale Idee über statische Methoden irgendwelchen UI Code in Modell abzubilden, der einfach nur basierend auf Zufall funktioniert 😃
Danke für deine Antwort.Sorry, ich bin Anfänger.Ich denke mein ganzes Projekt ist durcheinander. (link hilft mir nicht viel).Könntest du mir ausführlicher erklären, was und wie ich am besten machen kann
Vielen Dank
c# in list item von anderem typ hinzufügen:
Ich mache eine Json serialisierung.In combobox sind für x achse verschieden möglichkeiten.Je nach combobox eingabe möchte ich item in list hinzufügen
<public class LineChart
{
public Form1.ShowMarker ChartDataMarkerShowlabel { get; set; }
public string Type { get; set; }
public int ValueRange { get; set; }
public List<XAx> xAxes { get; set; }
public List<YAx> yAxes { get; set; }
public static LineChart getLineChart()
{
Form1 form = Application.OpenForms[0] as Form1;
XAx x1 = new XAx();
LineChart linechart = new LineChart();
linechart.ChartDataMarkerShowlabel = Helper.SelectedMarker(form.cmbDMarker_line.SelectedItem.ToString());
linechart.Type = form.Typtxt_line.Text;
//????Hier möchte ich items je nach combobox eingabe in list hinzufügen
List<XAx> x = new List<XAx>();
if (form.cmbX_Achse.SelectedItem.ToString() == "Logaritmische Achse") {
x.Add(x1.CategoryAxis);
}
else if (form.cmbX_Achse.SelectedItem.ToString() == "Numerische Achse"){
x.Add(x1.NumericalAxis);
}
else if (form.cmbX_Achse.SelectedItem.ToString() == "Zeit Datum Achse") {
x.Add(x1.DatetimeAxis);}
else {... }
linechart.xAxes=x;
return linechart;
}
}
public class LogaritmicAxis
{
public string Minimum { get; set; }
public string Maximum { get; set; }
public string IntervalType { get; set; }
public string Interval { get; set; }
public static LogaritmicAxis getLogarithmicAxis()
{
LogaritmicAxis logarithmicAxis = new LogaritmicAxis();
Form1 form = Application.OpenForms[0] as Form1;
logarithmicAxis.Minimum = form.txtXLogAxisMin.Text;
logarithmicAxis.Maximum = form.txtXLogAxisMax.Text;
logarithmicAxis.Interval = form.txtXLogAxisInt.Text;
return logarithmicAxis;
}
}
public class XAx
{
public CategoryAxis CategoryAxis { get; set; }
public NumericalAxis NumericalAxis { get; set; }
public DateTimeAxis DateTimeAxis { get; set; }
public LogaritmicAxis LogaritmicAxis { get; set; }
public static XAx getXAx()
{
XAx xax = new XAx();
xax.CategoryAxis = CategoryAxis.getCategoryAxis();
xax.NumericalAxis = NumericalAxis.getNumericalAxis();
xax.LogaritmicAxis = LogaritmicAxis.getLogarithmicAxis();
xax.DateTimeAxis = DateTimeAxis.getDateTimeAxis();
return xax;
}
}>
Wie könnte ich selectierte items in list hinzufügen(im Code kommentierte Teil)?
Vielen Dank im Voraus
Hallo,
ich möchte von mir angegebene(textbox) Eigenschaften von charts, label und table als json datei speichern .
ich habe unten stehende Code, aber wie und von welche Klassen muss ich object erzeugen,bzw. wie muss ich vorgehen.
Vielen Dank im Voraus
public class Series
{
public string color { get; set; }
public List<string> data { get; set; }
}
public class Linechart
{
public string titel { get; set; }
public List<Series> series { get; set; }
}
public class BarChart
{
public string titel { get; set; }
public List<Series> series { get; set; }
}
public class Chart
{
public string ChartBackgroundColor { get; set; }
public string ChartTittle { get; set; }
public Linechart Linechart { get; set; }
public BarChart Bar Chart { get; set; }
}
public class Table
{
public string minRowcount { get; set; }
public string maxRowcount { get; set; }
public string data { get; set; }
}
public class Label
{
public string data { get; set; }
}
public class Representationen
{
public List<Chart> Charts { get; set; }
public Table Table { get; set; }
public Label Label { get; set; }
}