【问题标题】:TwoWay Binding of a ComboBox to a static property in .NET 4.5在 .NET 4.5 中将组合框双向绑定到静态属性
【发布时间】:2012-07-13 15:11:44
【问题描述】:

好吧,我刚刚发布了this 问题,但我认为我没有做错任何事情。我的代码(以及所有答案的代码)是正确的,但我的开发机器使用 .NET4.5 运行,这显然与组合框的绑定有问题......

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

以下代码 sn-ps 在 .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 中实现 ComboBox 的 SelectedItem 到静态属性的这种双向绑定吗?

【问题讨论】:

    标签: xaml data-binding combobox .net-4.5 two-way-binding


    【解决方案1】:

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

    最后,几周前微软发布了一个适当的补丁,该补丁已经通过 Windows Update 分发。 see Knowledge Base KB2805222(WPF - 第 7 期)

    WPF - 第 7 期: 假设您使用包含静态属性的绑定路径更改选择器属性(例如 SelectedItem 属性)或 ComboBox.Text 属性。在这种情况下,绑定不会对更改做出反应。具体来说,新值不会写入数据项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-15
      • 1970-01-01
      • 2013-07-22
      • 1970-01-01
      • 2019-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多