我有一个列表框,它绑定到一个可观察的音频集合(自定义类)。 Audio类有两个属性,DisplayText(字符串)和一个名为TarpIds(Observable Collection of Integer)的属性。我需要允许用户为显示的每个列表项更改组合框中的TarpID并捕获选择更改。
我创建了一个DataTemplate,它从Audio对象设置DisplayText属性的样式,并添加一个ComboBox来显示此音频的可用TarpID(这些是动态的,每个音频都是唯一的)。 DisplayText运行良好,但我无法在ComboBox中显示TarpID。
这是我到目前为止所感谢的任何帮助。仅供参考我在运行时将ItemSource设置为将ListUploadAudio绑定到Observable音频集合。
<Border BorderBrush="Red" Background="WhiteSmoke" CornerRadius="8">
<Border.Resources>
<DataTemplate x:Key="UploadLayout" DataType="Audio">
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Path=DisplayText}"
FontWeight="Bold" Foreground="Blue">
</TextBlock>
<ComboBox x:Name="ListBoxTarpIDs"
ItemsSource="{Binding Path=TarpIds}">
</ComboBox>
</StackPanel>
</DataTemplate>
</Border.Resources>
<ListBox x:Name="ListUploadAudio" BorderBrush="Transparent"
Background="Transparent" Width="230" Margin="10"
Height="200" IsSynchronizedWithCurrentItem="True" SelectionMode="Multiple"
ItemTemplate="{DynamicResource UploadLayout}">
</ListBox>
</Border>
答案 0 :(得分:2)
您的ComboBox需要绑定SelectedValue
以及ItemsSource
。
就您的ComboBox没有绑定其项目而言,您的代码看起来正确。我怀疑其中一个:
如果这不起作用,我建议您发布代码,特别是TarpIds属性的定义以及设置ListUploadAudio.ItemsSource的位置
作为旁注:除非使用名称空间,否则在绑定中不需要Path =。