2011-09-02 202 views
2

我有一個類BatchInfoViewModel包含一個枚舉:WPF數據綁定枚舉

namespace MyStuff.ViewModel 
{ 
    public class BatchInfoViewModel : ObservableObject 
    { 
     public enum TimeFrame 
     { 
      Today, 
      Last7days, 
      Last30days, 
      Last6months, 
      Last12months, 
      All 
     } 
    } 
} 

和用戶控制「BatchInfoView」使用一個BatchInfoViewModel和我想要一個組合框在該視圖綁定,給時間表枚舉模型,但是我找到的每個資源都顯示了我認爲是我正在使用的方法,但是我在運行時不斷髮現Type未找到異常。

<UserControl x:Class="MyStuff.View.BatchInfoView" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:view="clr-namespace:MyStuff.View" 
     xmlns:viewModel="clr-namespace:MyStuff.ViewModel;assembly=MyStuff.ViewModel" 
     xmlns:sys="clr-namespace:System;assembly=mscorlib">  
<UserControl.Resources> 
    <ObjectDataProvider x:Key="EnumDataProvider"        
         MethodName="GetValues"        
         ObjectType="{x:Type sys:Enum}"> 
     <ObjectDataProvider.MethodParameters> 

<!--None of these work at all, I'm lost :(I've tried variations of these: --> 
<!--<viewModel:BatchInfoViewModel></viewModel:BatchInfoViewModel> 
<x:Type TypeName="viewModel:TimeFrame"/> 
<x:Type TypeName="BatchInfoViewModel:TimeFrame"/>--> 


     </ObjectDataProvider.MethodParameters> 
    </ObjectDataProvider> 

它無法找到類型並會拋出異常。

回答

5

您有一個嵌套在類中的枚舉,將枚舉放置在名稱空間中,在任何類之外並使用viewModel:TimeFrame

(我測試,你可以在枚舉使用x:Static+拼接語法,但它不會出現在這裏申請)

+0

配售枚舉在命名空間中,任何類之外的地區的車票。謝謝 ! – cjsmith

+0

@cjsmith:很高興幫助,只是測試了我以前的建議,但它不適用於此。 –