Silverlight:如何在ListBox ItemTemplate中动态绑定ComboBox?
我有一个列表框,至少需要一个组合框。我找不到将 ComboBox 放置在我使用的 ItemTemplate 中的方法。
...
<DataTemplate x:Key="parts_template">
<StackPanel Orientation="Horizontal">
<TextBlock .../>
<ComboBox .../>
</StackPanel>
</DataTemplate>
...
<ListBox x:Name="lb_parts" ItemTemplate="{StaticResource parts_template}" .../>
...
如何将 DataTemplate 中的 ComoBox 绑定到后面代码中的 ObservableCollection?
I have a list box that requires at least one ComboBox. I couldn't find a way to place the ComboBox in the ItemTemplate I use.
...
<DataTemplate x:Key="parts_template">
<StackPanel Orientation="Horizontal">
<TextBlock .../>
<ComboBox .../>
</StackPanel>
</DataTemplate>
...
<ListBox x:Name="lb_parts" ItemTemplate="{StaticResource parts_template}" .../>
...
How do bind that ComoBox in the DataTemplate to an ObservableCollection in the code behind?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以尝试的另一件事是订阅 ComboBox 上的 Loaded 事件。
然后您可以将EventHandler中的ComboBox.ItemsSource设置为MyObservableCollection。
看看
XAML:
C# 代码背后:
Another thing you could try is subscribe the Loaded event on the ComboBox.
Then you can set the ComboBox.ItemsSource in the EventHandler to MyObservableCollection.
Have a look
XAML:
C# Code Behind:
好的,这是如何在后面的代码中将 ComboBox 添加到 ListBox 的方法。
创建 ComboBox
如果您有一个填充 ComboBox 的数据源,那么您可以直接绑定该数据
源 如果您没有并且想要手动将项目添加到 ComboBox:
将项目的内容设置为您想要在 ComboBox 中显示的内容
现在全部完成剩下的,就是将 ComboBoxItem 添加到 ComboBox(仅当您手动创建 Items 时),然后将 ComboBox 添加到 ListBox
Okay, here is how you can add a ComboBox to the ListBox in the code behind.
Create a ComboBox
If you have a data source that populates the ComboBox then you can just bind that
If you do not and want to manually add items to the ComboBox:
Set the Content of the Item to what you want displayed in the ComboBox
Now all that is left, is to add the ComboBoxItem to the ComboBox (only if you are creating the Items manually), and then the ComboBox to the ListBox
您应该能够将数据上下文设置为列表本身
lb_Parts.DataContext=myCollection;
然后您应该能够在模板中绑定到它
You should be able to set the data context to the List itself
lb_Parts.DataContext=myCollection;
Then you should be able to bind to it in the template