我可以在我已经实现的 C# 代码中动态创建文本框,但人们一直说我需要遵循 MVVM 模式,我研究了一下,它看起来真的很难,我只是无法习惯它。
我需要动态创建文本框,将文本框中的信息保存到 SQL,然后能够重新打开它。
这是一张描述我需要做的事情的图片:
不使用 MVVM 模式是否可以做到这一点?
只需要一点启动和解释我如何做到这一点,我不想提供所有代码。
EDIT1:
我不知道这是否正确。
我创建了一个名为“标准”的类,如下所示:
namespace MVVModel
{
public class Standard
{
string _title;
string _question;
public string Title
{
get { return _title; }
set { _title = value; }
}
public string Question
{
get { return _question; }
set { _question = value; }
}
}
}
现在我要创建一个 ViewModel?这里面需要有什么?
您可以使用
<ItemsControl ItemsSource="{Binding StandardCollection}">
<ItemsControl.ItemTemplate>
<DataTemplate DataType="{x:Type Standard}">
<Grid>
<TextBox Text={Binding Title} />
<ItemsControl ItemsSource="{Binding Questions}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBox Text={Binding} />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
它绑定到 viewModel 中的任何集合。
您可以根据需要在集合中添加任意数量的项目。
Update:
public class Standard
{
string _title;
ObservableCollection<string> _questions;
public string Title
{
get { return _title; }
set {
_title = value;
NotifyOfPropertyChanged(()=>Title);
}
}
public ObservableCollection<string> Questions
{
get { return _questions; }
set {
_questions = value;
NotifyOfPropertyChanged(()=>Questions);
}
}
}
public class StandardViewModel
{
private ObservableCollection<Standard> _standardCollection;
public ObservableCollection<Standard> StandardCollection{
get
{
return _standardCollection;
}
set{
_standardCollection = value;
NotifyOfPropertyChanged(()=>StandardCollection);
}
}
}
查看您的图表 1:您似乎对每个标题可能有多个问题。所以这就是解决方案。
是的,您将需要Standard
类以使其变得简单。
抱歉,我现在没有 Visual Studio,我只是在记事本中编写了这段代码,然后粘贴到这里。不确定是否有错误。但只是高层次的想法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)