2012-07-13 78 views
0

好吧,我刚刚发布this的问题,但我想,我没有做错什么。我的代码(和所有答案的代码)是正确的,但我的dev-maschine运行在.NET4.5上,这显然与组合框的绑定有问题...双向绑定组合框的静态属性在.NET 4.5

因此,这里有一个新版本问题:如何将组合框的SelectedItem双向绑定到.NET4.5中的静态属性?

以下代码片段在.net4中工作,但不在.NET4.5中。在4.5中,只是选定的值不会传回到我的静态属性中。

我的视图模型:

public class MainWindowViewModel 
{ 
    public static List<String> MyElements { get; set; } 
    public static string SelectedElement { get; set; } 

    static MainWindowViewModel() 
    { 
     MyElements = new List<string>() {"a", "b", "c"}; 
     SelectedElement = "a"; 
    } 
} 

我的XAML

<Window.Resources> 
    <me:MainWindowViewModel x:Key="model"/> 
</Window.Resources> 

<StackPanel> 
    <ComboBox 
     ItemsSource="{Binding Source={x:Static me:MainWindowViewModel.MyElements}, Mode=OneWay}" 
     SelectedItem="{Binding Source={StaticResource model}, Path=SelectedElement}" /> 
</StackPanel> 

有谁有一个想法如何实现这种双向在.NET4.5静态属性组合框的的SelectedItem的结合?

回答

0

请参阅Microsoft Connect上的my report。每个Selector控件都受此问题感染。

最后,几个星期前,微软发布其已经通过Windows Update分发了相应的补丁程序。 see Knowledge Base KB2805222(WPF - 第7)

WPF - 问题7: 假设你改变选择属性(例如,SelectedItem属性)或者通过使用包含一个静态属性的结合路径ComboBox.Text属性。在这种情况下,绑定不会对这些更改做出反应。具体而言,新值不写入数据项。

相关问题