Как привязать ObservableCollection к комбинированному списку в WPF? - PullRequest
0 голосов
/ 16 июня 2020

Я застрял в этом, и даже после прочтения множества тем я могу найти ответ.

Вот моя попытка привязать наблюдаемую коллекцию к списку со списком в WPF с использованием шаблона MVVM:

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; }
    }
}

сценарийVM.cs

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

Main Windows .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"/>

Спасибо за помощь :)

1 Ответ

0 голосов
/ 16 июня 2020

Если вы установите DataContext на this, из c вы не сможете найти Scenarios, если это часть вашего ScenarioVM, а не ваше окно. DataContext - это root любого Binding.

Для начала вы могли бы сделать это.

public ScenarioVM VM {get; private set;}

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

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

Теперь ваше окно владеет экземпляром ScenarioVM. Не обязательно хороший дизайн, но это начало.

...