在WPF应用程序中,如何将用户输入的数据保存并显示在同一页面中,而不将数据保存在数据库中?

vktxenjb  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(119)

我正在创建WPF应用程序,我有需要由用户填写的字段,然后单击添加。然后,用户必须看到他们选择了什么,并添加更多,如果他们想要的。
例如,他们添加EmployeeName、Designation、Location等,然后单击Add。
在同一页面的下一部分中,我需要显示添加的信息,并允许用户添加更多信息,并在添加时显示。
现在我的问题是,我们如何显示添加的信息,而不存储在数据库中?

93ze6v8z

93ze6v8z1#

你说的是两个控件,第一个是输入表单,另一个是列表。
如果你想要的只是添加到列表中,那么把你的列表绑定到一个可观察的集合上,然后简单地添加到这个集合中。但是你必须使用ObservableCollection<T>

klh5stk1

klh5stk12#

我遵循以下方法并为我工作。如果这对任何人都有帮助。单击添加,通过创建xdocument存储此信息。然后通过使用ObservableCollection创建控件加载xml来显示信息
单击“添加”按钮后,将信息保存到xml文件中

XDocument document =
new( new XElement( "InstrumentTask",
new XElement( "EmployeeName", "Value1" ),
new XElement( "Designation", "Value2" ),
) );

document.Save( FilePath );

显示保存的信息从XML到UI如下

public ObservableCollection<string> SomeCollection { get; set; }

XmlDocument doc = new( );
doc.Load( FilePath );
foreach ( XmlNode node in doc.DocumentElement.ChildNodes )
{
this.SomeCollection.Add( node.InnerText ); 
}

下面是我的XAML显示XML信息的样子

<StackPanel Margin="0,50,0,0">
                <ItemsControl ItemsSource="{Binding SomeCollection, UpdateSourceTrigger= PropertyChanged, Mode=TwoWay}">
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <TextBox Text="{Binding Path=.}" />
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
            </StackPanel>

相关问题