我目前正处于我的一个项目的规划阶段.
我考虑过将MVVM模式用于我的应用程序,以实现可测试性,可维护性等.我只是开始关注MVVM,但有一点我在计划的应用程序的上下文中无法弄清楚.
我的申请旨在通过允许他们在视觉上捕捉锻炼来帮助体育教练进行锻炼计划.这是一种体育训练师的油漆.
我已经想过如何实现不同PaintObjects(这就是我给他们打电话)我的应用程序(例如:球,播放器等),并已经找到了最方便的方式来做到这一点是写一个类与多家DependencyProperties和然后为这个类提供XAML-ControlTemplate.
现在,当我考虑构建应用程序的绘制屏幕时,我想我会使用PaintView.xaml和PaintViewModel.cs之类的东西.现在的问题是PaintViewModel如何存储PaintObjects?什么是PaintObjects呢?他们是ViewModels吗?他们是模特吗?他们有意见吗?
这是我完全陷入困境的一部分,并希望得到更有经验的MVVM用户的一些建议.提前致谢!
最好的问候,crischu
我目前正在使用Prism(复合应用程序库/指南)开展一个我的项目.该应用程序将是一个专门用于篮球的MSPaint应用程序(球,球员等的预定义对象).
现在我想知道如何将我的应用程序组织到Prism模块中.特别是在考虑软件的绘图部分时.
我应该在2个模块(工具箱和画布)中拆分一般图纸视图(2列:工具箱,画布),还是这些模块的持续通信所产生的开销太大了?
Prism模块真的应该有多细粒度?
感谢提前和最好的问候,crischu
我正在使用EnvDTE在我的最新项目中生成一些代码.
我有一个给定C#-Class的CodeClass-Object的引用,但现在我想循环遍历它的所有成员(在codeClass.Members中)并检查它们的类型.
但是,我无法从循环访问codeClass.Members时获得的CodeElement-Object中检索给定成员的类型.
如何检索类型(int,string等)?
PS:反射不是我的用例的选项.
我有这些ViewModel:RecordViewModel,ComponentViewModel,其中RecordViewModel本质上是几个ComponentViewModel的容器.
这些ViewModel的显示当前由DataTemplates处理,如下所示:
<DataTemplate DataType="{x:Type vm:RecordViewModel}" >
<ItemsControl ItemsSource={Binding Components} />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:ComponentViewModel}" >
<TextBox Text={Binding Name} />
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
我现在想要提供的是一种更改ComponentViewModel显示顺序以及从列表中删除某个ComponentViewModel的方法.我开始通过操作ComponentViewModel的DataTemplate并添加提供这些函数的按钮来实现这一点(然后单击将触发ComponentViewModel上的一个方法,该方法将(通过引用"Parent"到RecordViewModel)调用RecordViewModel上的方法执行操作(如component.Parent.DeleteComponent(this)).
我的观点中的问题在于它实际上是Record应该操纵组件位置/移除组件而不是组件本身.
因此,我考虑使用附加到RecordViewModel的装饰器,并呈现按钮以为每个ComponentViewModel提供功能(移除,上移,下移).
然而问题是这些装饰者需要引用他们装饰的Control-derived(这是好的我只会绑定到Record-DataTemplate中的ItemsControl)但是当我想要显示按钮时出现问题每个ComponentViewModel的正确位置.我只引用了给定的ComponentViewModels而不是它们的可视化表示(在DataTemplate中定义的东西)所以我无法知道在哪里放置3个按钮.
有办法解决这个问题吗?或者对于使用ViewModels/DataTemplates的这些要求是否可能不是一个好主意,因此我应该使用Control-derivates/ControlTemplates吗?
提前致谢!