2
|
herbrandson · 技术社区 · 16 年前 |
![]() |
1
4
由于您使用ViewModel来介于实际模型和视图之间,我想知道直接在其中实现IValueConverter逻辑是否更容易。类似于:
然后,您可以直接绑定到您的第二个属性:
我认为ViewModel对象的主要目的是限制从原始模型中获取所需数据所需的“技巧”(如IValueConverters)的数量。既然你有一个,你不妨利用它。 编辑1 …当然,现在我重新阅读了你的帖子,我发现还有更多。你为“根”收藏中的每一件物品都找到了孩子。 如何将IValueConverter实现为ViewModel本身中的静态实例?
现在你应该能够说:
编辑2 好的,您正在使用Silverlight,因此{x:Static}对您不可用。 我能想到的另一个让你重用一个静态资源而不必声明两个的选项是直接在ViewModel中实现IValueConverter。如果你需要进行多种类型的转换,这是不好的,但如果你的ViewModel非常狭隘,那么它就可以完成这项工作。所以:
现在你可以这样做了:
|
![]() |
2
0
对不起,伙计们,我对你们在这里想做什么有点困惑。..不管怎样,从标题听起来,你好像想把值转换器中的一个属性转换为值转换器中一个属性。首先,看看我写的一篇文章,它详细解释了如何做到这一点: http://nick-howard.blogspot.com/2011/06/silverlight-4-value-converter.html 因此,您要做的是在LoadChildrenValueConverter中创建一个ObvervableCollection依赖属性,为了便于参数,我们称之为Children。 然后,在您的xaml中,您可以将LoadChildrenValueConverter更改为如下内容: 这样,您只需从视图模型调用一次web服务,然后就可以在视图模型中与值转换器共享ObvervableCollection。 希望这能有所帮助。 |
![]() |
juergen d · WPF EventTrigger不总是触发 7 年前 |
![]() |
Suresh · 如何访问TreeViewItem的子元素 7 年前 |
|
Awd · C#winform从自定义结构数组填充treeview 7 年前 |
![]() |
jr13216 · 基于标记属性的WPF TreeView图像 7 年前 |
![]() |
Egor Vasilyev · 带复选框的树 7 年前 |