Dav*_*ave 6 data-binding wpf enums combobox mvvm
我在这里已经阅读了这个非常相关的问题,由于答案中的链接,它非常有用.我现在只是遇到一个问题需要额外的步骤,并使其与MVVM模式一起工作.
假设我有自己的ViewModel,它(甚至模型)可以定义一个枚举:
public enum MyTypes { Type1, Type2, Type3 };
Run Code Online (Sandbox Code Playgroud)
我想在我的GUI中将其数据绑定到ComboBox.根据这篇文章,我将使用ObjectDataProvider来调用MyTypes上的Enum.GetValues()方法.所以我必须将MyTypes作为MethodParameter传递.但你怎么通过这种类型?我尝试了各种方法,比如在XAML中添加对命名空间的引用:
<Window.Resources>
<ObjectDataProvider MethodName="GetValues" ObjectType="{x:Type sys:Enum}" x:Key="TipHandlingValues">
<ObjectDataProvider.MethodParameters>
<!-- what goes here? it's totally wrong. -->
<my:MyTypes />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)
几乎没有我放在那里甚至会编译.有谁知道如何克服这个小障碍?
最简单的方法是在代码中添加这一行:
DataContext = Enum.GetValues(typeof(MyTypes));
Run Code Online (Sandbox Code Playgroud)
其他选项是添加标记扩展,从枚举中生成值列表。
| 归档时间: |
|
| 查看次数: |
6550 次 |
| 最近记录: |