0
與此問題圍成一圈。屬性更改通知綁定到靜態字典?
我有2個組合框。用戶在第一個組合框上作出選擇&第二個組合框根據第一個選擇顯示選項。
我將第二個ComboBox
綁定到我的視圖模型中公開的靜態Dictionary<string,string>
。我有另一個公共財產,在靜態字典上提出INPC。在UI中,更改不會顯示。我在輸出窗口中沒有出現錯誤。有什麼我失蹤?
p.s.這在.NET4.0下運行良好。一旦用戶機器上安裝.NET4.5,這種行爲纔開始與這個組合框1綁定到字典...
屬性:
private static Dictionary<string, string> _ModelArticleTypeCodeToChangeTitleMap;
public static Dictionary<string, string> ModelArticleTypeCodeToChangeTitleMap
{
get { return _ModelArticleTypeCodeToChangeTitleMap; }
set
{
_ModelArticleTypeCodeToChangeTitleMap = value;
}
}
//Default ArticleTypeCodeToTitleMapFilteredByCategory dictionary to the full list (as no Category will have been initially selected)
private Dictionary<string, string> _ModelArticleTypeCodeToTitleMapFilteredByCategory = ModelArticleTypeCodeToTitleMap;
public Dictionary<string, string> ModelArticleTypeCodeToTitleMapFilteredByCategory
{
get { return _ModelArticleTypeCodeToChangeTitleMap; }
set
{
_ModelArticleTypeCodeToChangeTitleMap = value;
OnPropertyChanged("ModelArticleTypeCodeToChangeTitleMap");
}
}
的XAML:
<ComboBox DisplayMemberPath="Value" HorizontalAlignment="Left", Converter={StaticResource invertBoolConverter}}" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding Path=ModelArticleCategoryToTitleMap, Mode=TwoWay}" SelectedValue="{Binding ModelSelectedArticleCategory}" SelectedValuePath="Key"/>
<ComboBox ItemsSource="{Binding Path=ModelArticleTypeCodeToChangeTitleMap, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsEnabled="{Binding IsEditModeTitleReadOnly, Converter={StaticResource invertBoolConverter}}" IsSynchronizedWithCurrentItem="True" DisplayMemberPath="Value" SelectedValuePath="Key" SelectedValue="{Binding ModelSelectedArticleTypeCode}" Text="{Binding ModelEnteredTitle}" TabIndex="1" />
嘗試提高一個叫做'ModelArticleTypeCodeToChangeTitleMapChanged',而不是使用'INotifyPropertyChanged'靜態事件。 – 2014-10-17 14:41:51
發現這個http://stackoverflow.com/questions/11473256/twoway-binding-of-a-combobox-to-a-static-property-in-net-4-5,好像它可能是一個錯誤?我已經安裝了4.5.2,但仍然沒有運氣... – Hardgraf 2014-10-17 14:42:18
解決方法:將其移動到單身。將該單例添加爲app.xaml中的資源,並且可以使用StaticResource綁定來訪問它。 – Will 2014-10-17 14:48:50