私はC#には新しく、wpfにはとても新しいので、これが本当にばかな質問であれば、私を許してください....別のクラスで作成されたデータテーブルにデータを保存しますか?
私は3つのクラスを持っています。ここに私のプログラムの構造があります。いくつかの初期化の手順が行われるべきであるメイン・ウィンドウクラスで
は、そのうちの一つは、データテーブルが別のクラスのメソッドを使用して作成されていることである。ここではpublic partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
savelabels table = new savelabels();
table.createlabeltable();
//...some other stuff that works
}
}
たDataTableが作成されるべきクラス、充填され、オンデマンドで返さ:
public class savelabels
{
DataTable labelcoords = new DataTable();
public void createlabeltable()
{
DataColumn column;
column = new DataColumn();
column.DataType = System.Type.GetType("System.Double");
column.ColumnName = "id";
labelcoords.Columns.Add(column);
}
public void saveposition(double x)
{
DataRow row = labelcoords.NewRow();
row["id"] = x;
labelcoords.Rows.Add(row);
}
public DataTable GetDataTable()
{
return labelcoords;
}
}
その後、私はデータテーブルを埋めなければならない方法がある中で、この第三のクラスがあります。
public class getdata
{
public void filltable()
{
double x = 123;
savelabels ctable = new savelabels();
ctable.saveposition(x);
}
}
getdataクラスの他のメソッドでも、savepositionメソッドによってテーブルに書き込まれた値を使用したいと考えています。問題はlabelcoordsテーブルに "id"カラムがないので、saveposition(x)メソッドでも動作しないため、MainWindowクラスで作成されたテーブルにsavepositionメソッドでアクセスできないと思います。
なぜ、fillableメソッドをsavelabelsクラスに移動しないのですか?取得データクラスは、savelabelsクラスへの参照を持たないため、同じDataTableインスタンスを共有しません。 – simon