我有以下代码,我动态创建了Stack面板及其子项在List框中。 Stack Panel的子值来自文本框条目
但是我想知道我是否可以将每个子元素值保存到text或xml文件中,并从表单加载事件中读取它们。
我知道如何将项目添加到常规列表框项目中保存并加载文本苍蝇。 所以,我真的想对堆栈面板中的孩子值也做同样的过程。
根据以下代码,它将覆盖最后一个文本框条目
例如,如果我在文本框中添加文本并按下按钮,它将向堆栈面板中添加子项并将其保存到文件中。但如果我再次输入文本,保存文件日期将覆盖。
而不是显示文本框条目的数量,它仅显示最后一个文本值。
我对数据绑定知之甚少,所以我不想使用Data Base&只想将每个孩子的价值保存到文件中。
希望你们能帮助我。谢谢!!
这是我的代码
Class MainWindow
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
Dim st As New StackPanel()
Dim tb As New Label()
tb.Content = TextBox1.Text
st.HorizontalAlignment = Windows.HorizontalAlignment.Left
'st.Height = 40
'st.Width = 40
'st.Margin = New Thickness(45, 45, 45, 0)
Me.ListBox1.Items.Add(st)
st.Children.Add(tb)
IO.Directory.CreateDirectory("D:\save")
Dim w As New IO.StreamWriter("D:\save\test.text")
' Dim i As Integer
For Each tb In st.Children
w.WriteLine(tb.Content)
Next
w.Close()
End Sub
结束班
这是我的xmal代码
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="509" Width="762">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="320*" />
<ColumnDefinition Width="420*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="49*" />
<RowDefinition Height="262*" />
</Grid.RowDefinitions>
<TextBox Height="25" HorizontalAlignment="Left" Margin="59,244,0,0" Name="TextBox1" VerticalAlignment="Top" Width="121" Grid.Row="1" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="59,275,0,0" Name="TextBox2" VerticalAlignment="Top" Width="121" Grid.Row="1" />
<Button Content="Button" Height="24" HorizontalAlignment="Left" Margin="77,308,0,0" Name="Button1" VerticalAlignment="Top" Width="83" Grid.Row="1" />
<Label Content="Label" Grid.Column="1" Height="29" HorizontalAlignment="Left" Margin="38,12,0,0" Name="Label1" VerticalAlignment="Top" Width="120" DataContext="{Binding}" Visibility="Hidden" />
<ListBox Height="297" HorizontalAlignment="Left" Margin="12,12,0,0" Name="ListBox1" VerticalAlignment="Top" Width="294" Grid.RowSpan="10" FontSize="14" FontStretch="Expanded" MinHeight="10"></ListBox>
</Grid>
答案 0 :(得分:2)
您需要使用重载的StreamWriter构造函数并指定要追加:
Dim w As New IO.StreamWriter("D:\save\test.text",True)
如果你不这样做,文件将被覆盖:
如果要将数据附加到文件,则为true; false覆盖文件。如果 指定的文件不存在,此参数无效,并且 构造函数创建一个新文件。