我有幾個項目的解決方案。在一個項目中,我的模型有一個名爲ModelEnum的枚舉。WPF數據綁定到帶有枚舉鍵的字典
然後在我的WPF項目中,我有一個ViewModel,它有一個字典。
在我的ViewModel我有我的ValuesDictionary設置爲:
private Dictionary<ModelEnum, string> _valuesDictionary = new Dictionary<ModelEnum, string>();
public Dictionary<ModelEnum, string> ValuesDictionary
{
get { return _valuesDictionary; }
set { _valuesDictionary = value; OnPropertyChanged(_valuesDictionary); }
}
在我的XAML我:
xmlns:model="clr-namespace:Model.Data;assembly=Model"
...
<TextBox Text="{Binding Path=ValuesDictionary[(model:ModelEnum)ModelEnum.Enum1].Value}" HorizontalAlignment="Left" Height="29" Margin="90,82,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="50"/>
下面的XAML代碼片段:
(model:ModelEnum)ModelEnum.Enum1
是給我錯誤「參數類型不匹配」。我很困惑,因爲我認爲我將它轉換爲它期望的Enum類型。我引用this SO問題嘗試它沒有運氣。
我想你的意思是用'[(model:ModelEnum)Enum1]'替換整個'[(model:ModelEnum)ModelEnum.Enum1] .Value'(關於**。Value **的註釋)。否則,OP可能會認爲新的表達式是'[(model:ModelEnum)Enum1] .Value',這將不起作用。 – 2014-10-27 23:45:28
就是這樣。謝謝!出於某種原因,xaml編輯器仍然在其下方顯示一條紅色的波浪線,但是當我測試它時,一切都很好。 – user1097108 2014-10-29 15:12:37
@Taran:pfff,我整個下午都在調試這個。找不到一個好的答案,直到我終於找到了這個!感謝名單! – 2014-11-28 16:14:42