从控件创建csv文件
本文关键字:文件 csv 创建 控件 | 更新日期: 2023-09-27 18:02:29
我有一个WPF应用程序,带有一个带有问题和答案的表单。问题在文本块中,答案在组合框中。用户为每个问题选择一个答案。我需要创建一个csv文件与问题和答案。我计划循环遍历每个控件并获得问题和答案的值,并创建如下所示的csv文件:
for()
{
String csv = String.Join(Environment.NewLine, txtQuestion.Text +";" + cbAnswer.Text);
}
System.IO.File.WriteAllText(@"C:'Test'Samplec.csv", csv);
这是个好办法吗?
总之,NO这不是一个好方法。直接访问UI在WPF中是一个糟糕的设计/实现的大危险信号。
您应该有一个项目控件,该控件绑定到保存问题和答案字符串的某个对象的ObservableCollection
。然后您只需遍历集合:
public class QuestionAnswerPair
{
public String Question { get; set; }
public String Answer { get; set; }
}
.....
ObservableCollection<QuestionAnswerPair> Questions { get; set; }
.....
String csv = String.Join(Questions.Select(qAndA => String.Format("{0};{1}'n", qAndA.Question , qAndA.Answer)).ToArray(), ',');
System.IO.File.WriteAllText(@"C:'Test'Samplec.csv", csv);
XAML代码片段:
<ItemsControl ItemsSource="{Binding Questions}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal"/>
<TextBox Text="{Binding Question}"/>
<TextBox Text="{Binding Answer}"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
这会生成一种奇怪的csv文件,但它与您的代码非常匹配。我相信您可以弄清楚解析,但如果您有问题,请随时询问。