我对此一无所知,即使阅读了很多主题,我仍然可以找到答案。
[我尝试使用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"/>
感谢您的帮助:)
如果将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
派生的,所以您可能也想解决这个问题。