小编Law*_*ley的帖子

何时不使用收益率(返回)

这个问题在这里已经有了答案:
在返回IEnumerable时是否有理由不使用'yield return'?

关于这些的好处,这里有几个有用的问题yield return.例如,

我正在寻找关于何时使用的想法yield return.例如,如果我预计需要返回一个集合中的所有项目,它没有看起来就像yield是有用的,对不对?

什么情况下使用yield会限制,不必要,让我陷入困境,或者应该避免?

.net c# yield yield-return

158
推荐指数
8
解决办法
4万
查看次数

使用声明式DataContext为运行时设计时间和数据模板连接MVVM视图和ViewModel?

是否可以使用Declarative DataContext和Data Template连接View和ViewModel?

目标:我希望将View与一个ViewModel连接起来用于设计时,另一个用于运行时.目前,对于设计时VM使用Declarative DataContext,为运行时使用Data-Template指定的VM不会按预期运行.

背景 - 有多种方法可以连接View和ViewModel,包括以下内容:

A.)以声明方式在View的XAML中指定ViewModel DataContext.这种技术在Design-Time中非常有用,它使用无参数构造函数传递伪数据.

<UserControl.DataContext>
    <my: BrowseAssetsViewModel />
</UserControl.DataContext>
Run Code Online (Sandbox Code Playgroud)

B.)以编程方式指定ViewModel,View和DataContext.

// …Setup code
BrowseAssetsViewModel viewModel = new BrowseAssetsViewModel(assetRegistry, domains);
BrowseAssetsView view = new BrowseAssetsView();
view.DataContext = viewModel;
Run Code Online (Sandbox Code Playgroud)

当方法B与方法A结合使用时,在运行时,WPF将使用ViewModel的版本覆盖方法A中指定的默认DataContext,并使用方法B中指定的参数化构造函数.

C.)为View-ViewModel关联定义数据模板 通过在App.XAML Application.Resources中关联View和ViewModel,WPF可以根据ViewModel的类型连接正确的View.

<DataTemplate DataType="{x:Type vm: BrowseAssetsViewModel }">
    <vw: BrowseAssetsView />
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)

如果ViewModel属性绑定到ContentPresenter控件,WPF将连接相应的View(基于ViewModel的类型)并将其放在ContentPresenter中.这在ViewModel呈现的"ViewModel-first"场景中非常有用,WPF通过检查呈现的ViewModel类型来解析并连接正确的View.

问题 - 当将此方法C与方法A结合使用时,WPF会解析正确的视图,但它似乎会重新查询View,通过无参数构造函数(方法A)调用声明性指定的ViewModel,从而覆盖现有的ViewModel属性!

问题 - 有没有办法在没有A无意中覆盖C ViewModel属性的情况下一起使用这些技术(C和A)?

.net wpf datacontext instantiation mvvm

6
推荐指数
1
解决办法
3475
查看次数

ReportViewer(RDLC)上的文本框不包装但强制分页

情况:我的报告使用几个ReportViewer Textbox控件,这些控件根据绑定文本的大小增长和缩小.当ReportViewer文本框控件中的文本太长而无法放在当前页面上时,会文本框之前发生分页符,然后在下一页中完全呈现.这通常会导致第一页底部发生分页时出现大的空隙.

我更喜欢文本框将文本包装在两个页面上,尽可能多地呈现当前页面上的文本,然后将余数包装到下一页.任何人都知道这是否可行?

.net reportviewer rdlc visual-studio-2008

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