将大量字段绑定到视图时的方法是什么

本文关键字:方法 是什么 视图 字段 绑定 | 更新日期: 2023-09-27 17:58:07

通过大量的帮助,我已经能够用SQLite数据库中的两个字段填充xaml视图。我正在构建这个视图/应用程序,只是为了帮助我理解数据绑定。我现在想知道两件事。主要问题是:

如果我在视图上有50个字段,我还会使用本例中使用的布局吗?

其次,

并不是说我对这种布局不满意(一点也不),但有更好的方法吗?

C#代码

private void Window_ContentRendered(object sender, EventArgs e)
{
      Activity act = new Activity();
      SQLiteConnection con = new SQLiteConnection(ClsVariables.StrDb);
      con.Open();
      var sqlText =string.Format("SELECT [Activity_Category], [Activity_Category_Sub] FROM tblActivity WHERE [ActivityID] = 1;");
      var sqlCmd = new SQLiteCommand(sqlText, con);
      using (var reader = sqlCmd.ExecuteReader())
      {
          if (reader.Read())
          {
              act.Activity_Category = reader["Activity_Category"] as string;
              act.Activity_Category_Sub = reader["Activity_Category_Sub"] as string;
          }
      }
      con.Close();
      this.DataContext = act;
}

XAML代码:

<Window x:Class="TM.frmEdit"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Add/Edit/Delete" Height="195" Width="500" ContentRendered="Window_ContentRendered">
    <Grid Name="GridMain">
        <TextBlock Text="{Binding Activity_Category}" Height="26" Margin="10,50,0,0" VerticalAlignment="Top" Width="120"/>
        <TextBlock Text="{Binding Activity_Category_Sub}" Height="26" Margin="10,90,0,0" VerticalAlignment="Top" Width="120"/>
    </Grid>
</Window>

将大量字段绑定到视图时的方法是什么

(1)有比在代码中创建sql字符串更好的查询方法。看看EntityFramework。这将简化您的生活,因为您将处理强类型类对象,而不是魔术(和脆弱)字符串。它还将简化对Reader的依赖,并且必须一次填充一个字段的属性,这是不可扩展的。只需搜索"entityframework sqlite"即可获取信息。

(2) 如果您想进一步接受数据绑定,请将MVVM视为一种设计模式。正如terry所说,它将帮助你塑造数据,而不是依赖于原始的"表中的"表示。不过,我不同意他关于什么是ViewModel的观点,但这是因为我倾向于每个视图有一个VM,而不是每个模型有一个虚拟机。只是不同的方法:)

(3) 看看C#命名标准,停止用下划线分隔类属性。这可能是您的Sql标准,但一旦它成为对象属性,它就不再是Sql了,因此可以随心所欲地命名。

布局/视图实际上取决于您的需要,这就是数据绑定的美妙之处。

如果您有50个字段,但您的用户只关心2个字段,那么您只需要呈现这2个字段的数据。

为了获得更好的视图外观,您可以使用设计器,例如Blend来创建复杂的布局和动画。