我是C#和Windows窗體的新手,請耐心等待。我製作的Windows窗體可以讓你加載視頻,加載腳本,然後製作標題。我想顯示一個表格,數據將在標記標題的開始和結束以及選擇文本時自動填充,並且是可編輯的。最後,我想將所有數據保存到一個xml文件。一個DataGridView用戶界面智能似乎正是我想要的,但我無法弄清楚後端如何從DataGridView中獲取數據(最好在數據集中)。是DataGridView錯誤的選擇?
我現在正在考慮使用帶有多個列的ListView
。任何意見,將不勝感激
我是C#和Windows窗體的新手,請耐心等待。我製作的Windows窗體可以讓你加載視頻,加載腳本,然後製作標題。我想顯示一個表格,數據將在標記標題的開始和結束以及選擇文本時自動填充,並且是可編輯的。最後,我想將所有數據保存到一個xml文件。一個DataGridView用戶界面智能似乎正是我想要的,但我無法弄清楚後端如何從DataGridView中獲取數據(最好在數據集中)。是DataGridView錯誤的選擇?
我現在正在考慮使用帶有多個列的ListView
。任何意見,將不勝感激
的DataGridView應該只是罰款爲應用程序,你可以很容易地通過做檢索任何數據保存到它:
dgvThing.DataSource;
將包含任何類型的已保存到Datagridview(列表,數組等)。
例子:
public class SuperFunObject {
public TimeSpan start { get; set; }
public TimeSpan end { get; set; }
public string selectedText { get; set; }
public SuperFunObject(Timespan a, Timespan b, string text) {
start = a;
end = b;
selectedText = text;
}
}
List<SuperFunObject> funList = new List<SuperFunObject>();
funList.Add(new SuperFunObject(TimeSpan.FromSeconds(0.0),TimeSpan.FromSeconds(20.0),"Hello"));
dgvThing.DataSource = funList;
...
...
//retrive your list
List<SuperFunObject> getData = ((List<SuperFunObject>)dgvThing.DataSource);
我希望的例子有點幫助。注意,訪問器(get,set)的原因是Datagridview能夠從對象中檢索數據以供顯示。
這裏有一個小小的例子,它可以將一個類從數據源中填充到一個數組中,並將其保存到您在參數中指定的XML文件路徑中。
public static bool SaveXMLObjectToFile(object IncomingXMLObject, string Path)
{
string xmlString = null;
File TheFileIn = default(File);
string docname = null;
StreamWriter WriteAFile = default(StreamWriter);
string filelocation = null;
//Dim filelocation As String
System.IO.MemoryStream MemStream = new System.IO.MemoryStream();
System.Xml.Serialization.XmlSerializer Ser = default(System.Xml.Serialization.XmlSerializer);
System.Text.Encoding encodingvalue = System.Text.UTF8Encoding.UTF8;
System.Xml.XmlTextWriter writer = new System.Xml.XmlTextWriter(MemStream, encodingvalue);
bool Result = false;
try {
File.Delete(Path);
Ser = new System.Xml.Serialization.XmlSerializer(IncomingXMLObject.GetType);
Ser.Serialize(writer, IncomingXMLObject);
MemStream = writer.BaseStream;
//as system.io.memorystream
xmlString = UTF8ByteArrayToString(MemStream.ToArray());
//Will Not Convert Byte Array from Diagram
filelocation = Path;
WriteAFile = TheFileIn.AppendText(filelocation);
WriteAFile.Write(xmlString);
WriteAFile.Close();
Result = true;
} catch (Exception e) {
Result = false;
}
return Result;
}
的DataGridView可能是更容易使用,因爲這樣的事實,它是直接「可轉換」到DataSet :) – VisualBean