动态创建文本框MVVM?

use*_*821 3 c# wpf mvvm

我可以用我已经实现的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?需要做什么?

Kis*_*mar 5

您可以使用

<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中编写了这段代码,并粘贴在这里.不确定错误.但只是高层次的想法.