小编ken*_*ner的帖子

DataTemplate驱动的视图注入MVVM

我有一个容器视图,看起来像这样

<UserControl x:Class="Views.ContainerView">
    <UserControl.Resources>
        <ResourceDictionary>
            <DataTemplate DataType="{x:Type viewmodels:AViewModel}">
                <views:MyView />
            </DataTemplate>
            <DataTemplate DataType="{x:Type viewmodels:BViewModel}">
                <views:MyView />
            </DataTemplate>
            <DataTemplate DataType="{x:Type viewmodels:CViewModel}">
                <views:MyView />
            </DataTemplate>
            <DataTemplate DataType="{x:Type viewmodels:DViewModel}">
                <views:MyView />
            </DataTemplate>
        </ResourceDictionary>
    </UserControl.Resources>
    <Grid>
        <ListBox ItemsSource="{Binding Path=AvailableViewModels}" 
            SelectedItem="{Binding Path=CurrentViewModel}" 
            IsSynchronizedWithCurrentItem="True" />
        <ContentControl Content="{Binding Path=CurrentViewModel}" />
    </Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

我的所有视图模型都继承了BaseViewModel,因此我将视图转换为此视图

<UserControl x:Class="Views.ContainerView">
    <UserControl.Resources>
        <ResourceDictionary>
            <DataTemplate DataType="{x:Type viewmodels:BaseViewModel}">
                <views:MyView />
            </DataTemplate>
        </ResourceDictionary>
    </UserControl.Resources>
    <StackPanel>
        <ListBox ItemsSource="{Binding Path=AvailableViewModels}" 
            SelectedItem="{Binding Path=CurrentViewModel}" 
            IsSynchronizedWithCurrentItem="True" />
        <ContentControl Content="{Binding Path=CurrentViewModel}" />
    </StackPanel>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

认为它只会实例化一个MyView,并在ListBox.SelectedItem更改时重新绑定viewmodel.我是否正确理解了这种行为?这是首选做法吗?当我在视图之间切换时,如何验证我没有搅拌内存?

wpf memory-management instantiation datatemplate mvvm

5
推荐指数
1
解决办法
4860
查看次数

类方法是否应接受参数或使用类属性

考虑以下课程

public class Class1
{
    public int A { get; set; }
    public int B { get; set; }

    public int GetComplexResult()
    {
        return A + B;
    }
}
Run Code Online (Sandbox Code Playgroud)

为了使用GetComplexResult,该类的使用者必须知道在调用该方法之前AB之前.如果GetComplexResult访问许多属性来计算其结果,如果使用者未首先设置所有适当的属性,则可能导致错误的返回值.所以你可以这样写这个类

public class Class2
{
    public int A { get; set; }
    public int B { get; set; }

    public int GetComplexResult(int a, int b)
    {
        return a + b;
    }
}
Run Code Online (Sandbox Code Playgroud)

这样,调用者GetComplexResult被强制传递所有需要的值,确保正确计算预期的返回值.但是如果有许多必需的值,参数列表也会增长,这似乎也不是好的设计.它似乎也破坏了封装的重点A,B并且GetComplexResult在单个类中.我甚至可能想要创建GetComplexResult静态,因为它不需要类的实例来完成它的工作.我不想绕过一堆静态方法. …

oop unit-testing encapsulation

5
推荐指数
1
解决办法
183
查看次数

体系结构良好的ASP.NET WebForms站点的示例

什么是一个相当现代,设计良好,相当复杂的ASP.NET webforms网站的例子,有源代码可用?特别是使用MVP或MVC模式.

注意:我不是在寻找使用ASP.NET MVC框架的站点.我正在寻找使用传统webforms构建的网站,即使他们恰好使用MVC模式

architecture asp.net mvp asp.net-mvc

5
推荐指数
1
解决办法
3353
查看次数

带有复选框和流向的Silverlight中的存储效果

如果我<Checkbox Content="Text" FlowDirection="RightToLeft"> 在复选框的左侧定义文本上传

但是,如果定义<Checkbox Content="Text:" FlowDirection="RightToLeft">注意:符号然后我看到奇怪的效果它不是文本:CheckBox但它的diplsys:文本Chekbox:符号出现一个文本的左侧,它也适用于所有类型的charectes?

有任何想法吗??

silverlight xaml

5
推荐指数
1
解决办法
1370
查看次数

当解决方案具有多个Web应用程序时,TFS 2010 + MSDeploy

我有两个解决方案

  • SolutionA.sln
    • WebApplication1.csproj
  • SolutionB.sln
    • WebApplication1.csproj
    • WebApplication2.csproj

我还有两个TFS 2010构建配置

  • BuildConfigA
    • 应该构建SolutionA并部署WebApplication1
  • BuildConfigB
    • 应该构建SolutionB并部署WebApplication2(但不是WebApplication1)

为了防止BuildConfigB尝试部署WebApplication1,我<DeployOnBuild>false</DeployOnBuild>在WebApplication1.csproj中添加了一个.但这也阻止了BuildConfigA部署它.我怎么能适应这种情况?

visual-studio-2010 tfsbuild msdeploy tfs2010

5
推荐指数
1
解决办法
2290
查看次数

Visual Studio 2010扩展,用于向intellisense添加扩展方法,即使using语句不存在也是如此

我已经习惯了using System.Linq;IEnumerable扩展方法添加,但有时我尝试在类上使用扩展方法并且它没有出现在intellisense中,我花了太多时间试图找出什么是在实现之前我只需要一个Visual Studio没有找到的使用声明.是否有VS2010扩展可以在标准Ctrl+ . View.ShowSmartTag功能中找到扩展方法?

extension-methods visual-studio-2010 visual-studio-extensions

5
推荐指数
1
解决办法
410
查看次数

ExpandoObject,匿名类型和Razor

我想使用ExpandoObject作为类型的Razor视图的viewmodel ViewPage<dynamic>.我这样做时出错了

ExpandoObject o = new ExpandoObject();
o.stuff = new { Foo = "bar" };
return View(o);
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能使这项工作?

dynamic anonymous-types expandoobject razor asp.net-mvc-3

4
推荐指数
1
解决办法
7925
查看次数

XAML样式的在线资源

有没有很好的XAML样式的在线资源?免费或付费,无所谓 - 我只是想找到一个相当大的样式集合,我可以放入我的应用程序并尝试不同的外观

编辑:第一次谷歌搜索想出了
http://www.xamltemplates.net/
http://reuxables.com

silverlight wpf xaml styles designer

3
推荐指数
1
解决办法
1592
查看次数

不太了解SQL Server事务日志

我已经阅读了SQL Server事务日志,但对如何使用/管理它们仍然不太满意.我知道它们对事务回滚,镜像,复制和日志传送等很重要.

对我来说,它们看起来仍然像一个黑盒子,我对它们做任何事都不太舒服.是否有工具允许我查看事务日志文件或获取有关它的信息?如果我不需要事务日志传送之类的东西,我可以定期收缩和/或截断我的日志文件吗?特别是在将备份还原到测试实例的情况下 - 我真的需要一个占用空间的数GB日志文件吗?我需要注意哪些其他功能特别依赖于事务日志,如果我缩小/截断日志文件将无法工作?

transaction-log sql-server-2008 database-replication database-mirroring

3
推荐指数
1
解决办法
1022
查看次数

绑定右键单击jQuery?

我想将一个函数绑定到右键单击.这可能与jQuery UI一起使用吗?

html jquery jquery-ui

3
推荐指数
2
解决办法
5900
查看次数