2013-11-26 99 views
0

仍然在WPF相當新,特別是結合的詞典,但我有我會在對象上的其他地方在我的項目中使用的屬性的枚舉,但該計劃的第一個開球點的人會是用戶從組合框中選擇單個項目,我想匹配可用的枚舉選項。我原本以爲有一個以enum選項爲關鍵字的字典對象,以及在UI呈現中用作字符串的值,這就是我一直在努力的方向。我一直在四處搜尋,並認爲我有它,但組合框填充空白。綁定組合框項枚舉

我有幾個問題;

首先,由於我還不太確定綁定的內容,這個問題與我在另一個問題的評論中發現的這個帖子Target Exception Bug有關嗎?如果是這樣,這是否意味着我暫時吠叫錯了樹?還有另外一種方法可以實現我的目標嗎?其次,如果它不相關,我是否在下面的代碼中遺漏了一些東西?我目前在輸出窗口中沒有錯誤,項目編譯正常。

下面是枚舉(它位於已添加到項目引用中的單獨名稱空間中);

namespace WGM_lbr 
{ 
public class Available_Wgms 
{ 
    private static Dictionary<Wgms,string> _wgmColl; 
    public static Dictionary<Wgms,string> WgmsCollection 
    { 
     get 
     { 
      return _wgmColl; 
     } 
    } 

    static Available_Wgms() 
    { 
     _wgmColl = new Dictionary<Wgms, string>() { 
      {Wgms.First, "First Dictionary item"}, 
     //other Dictionary Items go here 
     } 
    } 

    public enum Wgms 
    { 
     First, 
     //other Enum options go here 
    } 
} 
} 

在App.xaml中

<Application x:Class="The_First.App" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:WGM="clr-namespace:WGM_lbr;assembly=WGM_lbr" 
     StartupUri="MainWindow.xaml"> 
<Application.Resources> 
    <BooleanToVisibilityConverter x:Key="b2v"/> 
    <WGM:Available_Wgms x:Key="WgmList"/> 
</Application.Resources> 

最後組合框和有約束力的XAML我的資源聲明(如果它的相關性,這種生活在WPF控件的巢,最多網頁居住在頁面上,通過使用頁面作爲源代碼的框架控件將其加載到mainwindow.xaml。頁面和mainwindow都聲明瞭WGM名稱空間 - 因爲這篇文章已經足夠長了,所以我將它們剪掉了。

<ComboBox Name="cmbWgmSelector" Margin="5,0" ItemsSource="{Binding Source={StaticResource WgmList}}"/> 

任何可以提供的幫助/建議非常感謝。

回答

1

更新如下結合:

<ComboBox Name="cmbWgmSelector" Margin="5,0" DisplayMemberPath="Value" ItemsSource="{Binding Path=WgmsCollection, Source={StaticResource WgmList}}"/> 
+0

不知道我怎麼設法錯過!謝謝。 – Lindsay