标签: datacontext

如何使用泛型按类型创建类的实例

我在使用泛型创建类的新实例时遇到问题.我想要做的是拥有一个可以使用DBSet <>或FakeDBSet <>创建的数据库上下文.FakeDBSet将用于测试代码.我目前有一个完整的假数据文本,但它是一个浪费,因为唯一真正的区别是使用的DBSet.我已经研究过使用Activator.CreateInstance()而没有太多运气.

例:

public class Album {}
public class Artist {}

public class MusicStoreContext
{
    public IDbSet<Album> Albums { get; set; }
    public IDbSet<Artist> Artists { get; set; }

    public MusicStoreContext(Type dbSetType)
    {
        Albums = new (dbSetType)<Album>;
        Artists = new (dbSetType)<Artist>;
    }

}

public class Startup
{
    public Startup()
    {
        // Production code would do something like this:
        MusicStoreContext context = new MusicStoreContext(typeof(DbSet<>));

        // Test code would do something like this:
        MusicStoreContext testContext = new MusicStoreContext(typeof(FakeDbSet<>));
    }
}
Run Code Online (Sandbox Code Playgroud)

我也尝试过这样的事情: …

c# generics datacontext tdd

0
推荐指数
1
解决办法
2848
查看次数

将多个视图分配给一个视图模型 WPF C#

我有一个应用程序,我通过 xaml 中的数据模板分配每个视图数据上下文。

问题是我现在有一个作为单例实现的视图模型,并且需要有两个视图使用它。

有没有一种方法可以在一个数据模板中设置多个视图?

我知道像下面这样的东西是行不通的,我只是用这个作为我的意思的例子:

              <DataTemplate DataType="{x:Type viewModel:ThisViewModel}">
                    <view:ViewOne />
                    <view:ViewTwo />
              </DataTemplate>
Run Code Online (Sandbox Code Playgroud)

谢谢

c# data-binding wpf datacontext

0
推荐指数
1
解决办法
1235
查看次数

WPF MVVM:设置选项卡视图的 DataContext

我遇到了一种奇怪的绑定行为,这里描述。我做了很多故障排除,我得出的结论是,最可能的问题在于我如何设置DataContext每个选项卡的视图。

我有一个TabControlItemsSource绑定到列表ViewModels

MainView:
<TabControl ItemsSource="{Binding TabList}">
    <TabControl.Resources>
        <DataTemplate DataType="{x:Type vm:Tab1ViewModel}">
            <v:Tab1 />
        </DataTemplate>
    </TabControl.Resources>
...
</TabControl>

MainViewModel:
public ObservableCollection<TabViewModelBase> TabList { get; set; }
public MainViewModel()
{
    this.TabList = new ObservableCollection<TabViewModelBase>();

    // Tab1ViewModel is derived from TabViewModelBase
    this.TabList.Add(new Tab1ViewModel()); 
}
Run Code Online (Sandbox Code Playgroud)

所以,现在MainViewModel有一个列表TabViewModelBase,我相信这是正确的 MVVM 方法。视图 ( Tab1)TabViewModelBase是使用 定义的DataTemplate

这就是问题所在:

Tab1:
<UserControl.Resources>
    <vm:Tab1ViewModel x:Key="VM" />
</UserControl.Resources>
<UserControl.DataContext>
    <StaticResourceExtension ResourceKey="VM" />
</UserControl.DataContext>
Run Code Online (Sandbox Code Playgroud)

我想大多数人也会这样做,但是......这种方法有一些 …

wpf datacontext tabcontrol datatemplate mvvm

0
推荐指数
1
解决办法
2936
查看次数

DataContext.ExecuteQuery 参数问题

我收到以下错误:

过程或函数“procTestReport”需要参数“@StartDate”,但未提供该参数。

当我执行以下代码时:

String[] args = new String[2]{StartDate.ToShortDateString(), EndDate.ToShortDateString()};

lst = dbContext.ExecuteQuery<Summary>("procTestReport", args).ToList<Summary>();
Run Code Online (Sandbox Code Playgroud)

我通过的论点是否应该以不同的方式呈现?从以下链接看来我正确使用了它: https ://msdn.microsoft.com/en-us/library/bb361109.aspx

c# linq datacontext system.data

0
推荐指数
1
解决办法
3120
查看次数