我有一個複選框,一個簡單的組合框裏面是這樣:WPF的ItemsSource工作在代碼隱藏而不是在XAML
<ComboBox Height="23" HorizontalAlignment="Left" Margin="158,180,0,0" Name="comboBox1" VerticalAlignment="Top" Width="120" ItemsSource="{Binding collection}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox Content="{Binding Name}"></CheckBox>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
DataContext的僅僅是後面的代碼,並對其進行測試我使用下面的代碼:
public ObservableCollection<Foo> collection { get; set; }
private void button1_Click(object sender, RoutedEventArgs e)
{
collection = new ObservableCollection<Foo>();
this.comboBox1.ItemsSource = collection;
Foo f = new Foo("DSD");
collection.Add(f);
}
當我設置的ItemsSource爲我的代碼,然後它工作正常,但我想設置的ItemsSource在XAML,但它不使用XAML中上述工作。我也嘗試將其設置爲Path =「」。任何人都知道爲什麼?
謝謝
不要這樣做。這只是錯誤的,它打破了DataContext的整個概念,它用於將buisnesslogic與perpersentation分開。不,不。 – 2011-06-09 11:56:22
我覺得給我一個這樣的倒退是不公平的。這個問題沒有任何相關的背景。他只想知道爲什麼他的樣本不起作用,我給了他缺失的鏈接。我們不在這裏討論架構的概念證明。這是一個例子,它不必解釋如何使用MVVM等。請考慮收回這個downvote。 – aKzenT 2011-06-09 12:42:24
在任何情況下,我都將您的反饋併入原始答案並添加了評論。 – aKzenT 2011-06-09 12:54:09