通过很多很棒的帮助 - 我已经能够使用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>
答案 0 :(得分:2)
(1)有更好的方法来进行在代码中创建sql字符串的查询。看看EntityFramework。这将简化您的生活,因为您将处理强类型类对象而不是魔术(和脆弱)字符串。它还将简化您对Reader
的依赖,并且必须一次填充一个字段的属性,这是不可扩展的。
只需搜索'entityframework sqlite'获取信息。
(2)如果您想进一步包含数据绑定,请将MVVM视为设计模式。正如特里所说,它将帮助你塑造你的数据,而不是依赖原始的'就像它在表中'表示。我不同意他的观点是什么是ViewModel,但那是因为我倾向于每个View有一个VM,而不是每个模型一个VM。只是不同的方法:)
(3)查看C#命名标准,并停止使用下划线命名类属性,将零件分开。这可能是你的Sql标准,但是一旦它成为一个对象属性,它就不再是一个sql的东西了,所以你可以这么命名。
答案 1 :(得分:1)
布局/视图实际上取决于您的需要,这就是数据绑定的美妙。
如果您有50个字段,但您的用户只关心2,那么您只需要显示2个字段的数据。
为了更好看的视图,您可以使用设计师 Blend 来创建复杂的布局和动画。