如何将ObservableCollection绑定到WPF中的组合框?

问题描述 投票:0回答:1

我对此一无所知,即使阅读了很多主题,我仍然可以找到答案。

[我尝试使用MVVM模式将可观察的Collection绑定到WPF中的组合框:

Scenario.cs

{
    public class Scenario
    {
        public string name { get; set; }
        public string codeClient { get; set; }
        public string codeAppli { get; set; }
        public string infoComplementaire { get; set; }
    }
}

scenarioVM.cs

    {
        public ObservableCollection<Scenario> Scenarios { get; set; }
    }

MainWindows.xaml

<ComboBox x:Name="cbScenario" ItemsSource="{Binding Scenarios}" DisplayMemberPath="{Binding Path=Name}" HorizontalAlignment="Left" Margin="407,8,0,0" VerticalAlignment="Top" Width="226" BorderBrush="#FF1585B5" Height="26"/>

感谢您的帮助:)

wpf combobox binding observablecollection
1个回答
0
投票

如果将DataContext设置为this,则无法找到Scenarios是它属于ScenarioVM而不是Window的一部分。 DataContext是任何绑定的根。

首先,您可以这样做。

public ScenarioVM VM {get; private set;}

public MainWindow() 
{ 
    VM = new ScenarioVM();
    InitializeComponent(); 
    DataContext = VM; 
    this.Loaded += MetroWindow_Loaded; 

    VM.Scenarios.Add(new Scenario());
} 

现在您的窗口拥有ScenarioVM的实例。不一定是一个好的设计,而是一个开始。

迟早又遇到麻烦,因为您的方案不是从INotifyPropertyChanged派生的,所以您可能也想解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.