我有一个复选框,一个简单的组合框里面是这样: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