現在、私はWPF C#でアプリケーションを作成しています。これは、Javaで書かれた他のプロセスのヘルパーです。これらの他のプロセスには、 "SKIP"と呼ばれる列に異なる "名前"がリストされているconfiguration.csvが必要です。スキップ時に列がXの場合、Javaプログラムはそれらの名前をスキップし、従属プロセスをスキップします。C#WPF読み込み/編集CSV
ExcelでCSVを開いて行を編集すると、すべて正常に動作します。それは問題ではありません。私が達成したいのは、WPFアプリケーション(最初と最後の行を除く)のDataGridに行をリストすることです。ユーザーは、その特定の名前をスキップするかどうかを決めるチェックボックスにチェックを入れることができます。 Saveを押すと、.CSVが更新されます。
私はすでに、このトピックをよく知っている友人といくつかのコードを書いています。 WinFormsでは正常に動作しましたが、WPFでは動作しません。チェックボックスの値は取得できず、CSVに保存することもできません。
CODE:
private void OBJ_SaveButton_Click(object sender, RoutedEventArgs e)
{
if (OBJ_DataGrid.Items.Count == 0)
{
MessageBox.Show("Kein Datensatz in der View.");
return;
}
/*if (Directory.Exists(path))
{
if (File.Exists(filepath))
{
string tmp = null;
try
{
FileStream fileStr = new FileStream(filepath, FileMode.Create);
StreamWriter strWriter = new StreamWriter(fileStr);
strWriter.WriteLine("SFObject;Skip");
for(int i=0;i< itmGrd.Count;i++)
{
switch (itmGrd[i].ItemValue)
{
case true:
tmp = itmGrd[i].ItemName + ";X";
break;
case false:
tmp = itmGrd[i].ItemName + ";";
break;
}
strWriter.WriteLine(tmp);
}
strWriter.WriteLine("SuccessMSG;");
strWriter.Close();
fileStr.Close();
LoadConf();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
else
MessageBox.Show("ERR_F0: Pfad nicht gefunden.");
}
else
MessageBox.Show("ERR_D0: Pfad nicht gefunden.");*/
}
private void OBJ_ReloadButton_Click(object sender, RoutedEventArgs e)
{
}
private void OBJ_DataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
}
private void OBJ_DataGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
{
MessageBox.Show(e.Row.ToString());
}
void OnChecked(object sender, RoutedEventArgs e)
{
MessageBox.Show(e.Source.ToString());
}
}
public class ItemGrid
{
public ItemGrid(string name, bool rval)
{
ItemName = name;
ItemValue = rval;
}
public string ItemName { set; get; }
public bool ItemValue { set; get; }
}
public class ItemsGrid : List<ItemGrid>
{
public string path = null;
public string filepath = null;
public ItemsGrid()
{
path = String.Format(@"{0}\build\", Environment.CurrentDirectory);
filepath = Path.Combine(path + "configuration.csv");
if (Directory.Exists(path))
{
if (File.Exists(filepath))
{
string line = null;
StreamReader file = new StreamReader(filepath);
while ((line = file.ReadLine()) != null)
{
if (!line.Equals("SFObject;Skip") && !line.Equals("SuccessMSG;"))
{
string input = (line.IndexOf(";X") != -1 ? (line.Replace(";X", "")) : (line.Replace(";", "")));
Add(new ItemGrid(input, (line.IndexOf(";X") != -1 ? (true) : (false))));
}
}
file.Close();
}
else
MessageBox.Show("ERR_F0: Pfad nicht gefunden.");
}
else
MessageBox.Show("ERR_D0: Pfad nicht gefunden.");
//Add(new ItemGrid("Tom", false));
// Add(new ItemGrid("Jen", false));
}
}
CSV:
私はあなたたちが私を助けることができ、それは働いていない理由は、私は本当に理解していないことを願っています。私はC#に熟達しているのではないことを認めなければならない。
こんにちは@WithMetta、このためにそんなにありがとう!すべて今は完璧に機能します。 2時間で最初のデモを手に入れました。今すぐアプリケーションが完了しました!ありがとう、ありがとう! – Pierre
最高の運勢! – WithMetta