我可以用我已经实现的C#代码动态创建Textbox,但是人们一直在说我需要遵循MVVM模式,我调查它并且看起来真的很难而且我不能习惯它.
我需要动态创建文本框,将文本框中的信息保存到SQL,然后才能重新打开它.
这是描述我需要做的事情的图片:

这可能不使用MVVM模式吗?
只需要提升启动和解释我如何做到这一点,我不想提供所有的代码.
EDIT1:
我不知道这是不对的.
我创建了一个名为'Standard'的类,如下所示:
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; }
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我要创建一个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>
Run Code Online (Sandbox Code Playgroud)
哪个绑定到viewModel中的任何集合.
您可以根据集合中的要求添加任意数量的项目.
更新:
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
看看你的图1:看起来每个标题可能有多个问题.所以这是解决方案.
是的,您需要Standard课程才能简化.
对不起,我现在没有Visual Studio,我只是在NotePad中编写了这段代码,并粘贴在这里.不确定错误.但只是高层次的想法.