【发布时间】:2018-07-18 14:25:28
【问题描述】:
问题在于显示多个组合框的表单 - 每个组合框的内容都是一个整数范围。可以有多个组合框,并且每个组合框的整数范围可能不同,而且这些信息都不能提前知道。
XAML 中这些组合框的 DataTemplate 是这样的
<DataTemplate x:Key="ListComboboxTemplate">
<ComboBox Margin="0,0,0,0" MinWidth="230" Height="22" ItemsSource="{Binding Path=DataContext.ListBoxContent, RelativeSource={RelativeSource AncestorType={x:Type Window}}}"
... >
ListBoxContent 属性是字符串的 ObservableCollection(我不知道为什么它是可观察的 - 内容一旦设置就不会改变)。
当有 2 个或更多组合框的整数范围且范围不同时,就会出现该错误 - 加载它们的循环只是将其计算的列表分配给 ListBoxContent 属性;结果是所有组合框都以相同的范围结束(当然是最后一个计算的)。
我猜是在我需要的 ViewModel 中,而不是一个简单的列表,比如字典,键入一个字符串*,其值是字符串的 ObservableCollection。
*显示的表单在组合框左侧有一个文本块,该文本块绑定到一个字符串属性 - 该值将是字典的键。
我不知道如何在不破坏模式的情况下做到这一点。我会认为某种命令可以设置组合框的内容,但我不知道如何获取命令所需的密钥。我也可能偏离这个想法。
【问题讨论】:
-
你可以做一个列表列表。或字典,但它是不可观察的。