如何在WPF MVVM中进行数据绑定

罗希特

这是模特

class DataModel
{
    string _inputvalue;                    
    public string FirstName
    {
        get { return _inputvalue; }
        set { _inputvalue= value; }
    }           
}

这是ViewModel

class MyViewModel : INotifyPropertyChanged
{
    DataModel _data;

    public MyViewModel ()
    {
        _data = new DataModel { FirstName= "DefaultName" };
    }

    public DataModel Data
    {
        get{return _data;}
        set{_data = value;}
    }

    public string FirstName
    {
        get { return _data.FirstName; }

        set {_data.FirstName= "NewName";
            OnPropertyChanged("FirstName"):
            }
    }

   public event PropertyChangedEventHandler PropertyChanged;

    void OnPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }

}

这是视图

  <TextBox  Text="{Binding FirstName}"
                   Margin="8,59,76,122" />

我的问题是:

1)由于我刚刚启动MVVM,所以我想知道这样做是否正确吗?

2)我希望我FirstName来自数据集。示例代码就像

  string _getname=MyDS.Tables[0].Rows[0][1].ToString();

我可以在哪里放置此代码?

谢谢你们

牛奶
  1. 您走在正确的轨道上。
  2. 它属于模型或模型附近。由于您不想在视图模型构造函数中创建模型,因此需要将某种类型的存储库服务注入到视图模型中,从而可以访问创建和检索模型的权限。然后,该存储库或模型本身将可以访问表,数据集等。

这是视图模型的粗略示例:

class MyViewModel : INotifyPropertyChanged
{
  private IModelRepository _repository;

  public MyViewModel(IModelRepository repository)
  {
    _repository = repository;
    Models = repository.GetAllModels();
  }

  public IEnumerable<DataModel> Models { get; set; }
}

public interface IModelRepository
{
  IEnumerable<DataModel> GetAllModels();
}

public class MyRepository : IModelRepository
{
  public IEnumerable<DataModel> GetAllModels()
  {
    // obviously nowhere near final code!!!
    return new List<DataModel> { 
                      new DataModel { 
                             FirstName = MyDS.Tables[0].Rows[0][1].ToString() 
                      } 
               };
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在WPF MVVM中进行数据绑定

来自分类Dev

如何在 Angular 4 中进行数据属性绑定?

来自分类Dev

使用MVVM WPF进行数据网格绑定

来自分类Dev

如何在MVVM中对动态膨胀的布局进行数据绑定

来自分类Dev

如何用流星在聚合物中进行数据绑定

来自分类Dev

如何通过C#而不是WPF进行数据绑定?

来自分类Dev

如何在C中进行数据对齐?

来自分类Dev

如何在Scala中进行数据清理

来自分类Dev

如何在mysql中进行数据透视查询?

来自分类Dev

如何在BigQuery中进行数据分组?

来自分类Dev

如何在mysql中进行数据透视查询?

来自分类Dev

如何在Scala中进行数据清理

来自分类Dev

如何在WPF中进行投射

来自分类Dev

WPF MVVM数据绑定

来自分类Dev

如何在WPF中设置数据绑定

来自分类Dev

在RadRichTextBox(WPF)中进行绑定

来自分类Dev

如何在 WPF 中的 Validation.ErrorTemplate 中进行 DataTrigger 绑定

来自分类Dev

如何在WPF中绑定

来自分类Dev

如何在Shiny-折线图R中进行数据集的反应函数

来自分类Dev

如何对父Stackpanel的ActualHeight进行数据绑定

来自分类Dev

如何对每个 API 级别的视图进行数据绑定?

来自分类Dev

如何在新vue之后设置vue数据并进行数据绑定

来自分类Dev

如何在两个数据组件之间进行数据绑定?

来自分类Dev

如何在WPF(MVVM)中绑定数据网格列的宽度

来自分类Dev

如何在按下按钮时绑定命令(wpf / mvvm)?

来自分类Dev

如何在MVVM模式wpf中绑定StrokeDashArray属性

来自分类Dev

如何在数据驻留在多个oracle数据库中进行数据分析?

来自分类Dev

如何在 Datagrid Cell 中对标签或 textBlock 进行数据绑定?

来自分类Dev

如何在Vue.js中进行父子孙之间的双向数据绑定

Related 相关文章

热门标签

归档