我的目标是拥有一个使用WPF的应用程序,它是一个3层架构.UI,BLL和DAL ...我想使用MVVM,但我不确定它如何与3层架构一起工作,或者它是否完全不同.所以考虑到这一点,我有几个问题:
1)LINQtoSQL:我在线阅读了很多内容,说LINQ取代了你的DAL,看过很多文章说这个坏主意.我认为这是一个坏主意,但是,我在这里放什么?我将返回BLL的数据类型是什么?IQueryable的?的ObservableCollection?我没有线索.
2)BLL:我想使这个服务在服务器上运行,这样当我需要进行更改时,我不需要重新部署整个应用程序,我只需要重新启动服务.但是,我不知道从哪里开始.
3)使用BLL,我想我对数据如何通过DAL从一直到接口的所有层感到困惑.
我已经在线完成了大量的研究,并且有很多东西,但是我没有看到有人谈论过使用SQLMetal和在服务器上运行的BLL在DAL中使用带有LINQ的MVVM的WPF应用程序.谁能指出我正确的方向?或者可能是一本书?
我正在尝试使用“RELATED”函数从我的 BISM 模型中的另一个表中提取一个字段。由于有许多表与 People 表有关系,因此只有 ONE 关系处于活动状态,其余关系处于非活动状态。在这种情况下,关系是非活动的,据我所知,我将使用“USERELATIONSHIP”函数来指定要使用的关系。根据我在这里找到的内容:http : //connect.microsoft.com/SQLServer/feedback/details/730493/powerpivot-dax-method-related-does-not-work-if-key-is-inactive 我想我可以做这个:
=CALCULATE(RELATED(People[FullName]]),USERELATIONSHIP(Def[OwnerID],People[PersonID]))
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
列 'People[FullName]' 要么不存在,要么与当前上下文中可用的任何表没有关系。
我已经仔细搜索过了,因为我知道有很多关于依赖属性的内容,但我还没有看到任何有效的解决方案.我正在尝试将ObservableCollection从我的ViewModel绑定到我的AutoCompleteBox.我的ViewModel正在返回数据,Getter正在被击中.但是,之后,控件的SetValue或OnItemsSourcePropertyChanged不会触发.有什么可能是错的想法吗?
我有一个像这样的控件:
[ContentProperty(Name = "ItemsSource")]
public partial class AutoCompleteBox : Control
{
//local stuff
private ListBox lb;
private List<Person> _items;
private ObservableCollection<Person> _view;
public AutoCompleteBox() : base()
{
DefaultStyleKey = typeof(AutoCompleteBox);
Loaded += (sender, e) => ApplyTemplate();
}
protected override void OnApplyTemplate()
{
this.lb = this.GetTemplateChild("Selector") as ListBox;
base.OnApplyTemplate();
}
#region ItemsSource
public IEnumerable ItemsSource
{
get { return GetValue(ItemsSourceProperty) as ObservableCollection<Person>; }
set { SetValue(ItemsSourceProperty, value); } //Never gets called
}
public static readonly DependencyProperty ItemsSourceProperty =
DependencyProperty.Register(
"ItemsSource", …Run Code Online (Sandbox Code Playgroud) 我已经在.xaml文件后面的事件处理程序中看到了这一点,但是它似乎不会遵循MVVM模式:MainApplication.mainFrame.Navigate(new HomePage());.是否有更好的方法可以在ViewModel中使用MVVM模式处理导航?还是在XAML?