관찰 가능한 오디오 모음 (사용자 정의 클래스)에 바인딩 된 목록 상자가 있습니다. Audio 클래스에는 DisplayText (문자열)라는 속성과 TarpIds (Observable Collection of Integer)라는 속성이 있습니다. 사용자가 표시된 각 목록 항목의 콤보 상자에서 TarpID를 변경하고 선택 변경 사항을 잡을 수있게해야합니다.DataTemplate의 ComboBox에 어떻게 바인딩합니까?
Audio 개체의 DisplayText 속성에 스타일을 지정하고 ComboBox를 추가하여이 오디오에 사용할 수있는 TarpID를 표시하는 DataTemplate을 만들었습니다. (이들은 각 오디오에 대해 동적이며 고유합니다). DisplayText는 훌륭하게 작동하지만 ComboBox에 표시 할 TarpID를 가져올 수 없습니다.
여기까지 제가 도움이되어 주셔서 감사합니다. 참고 : ListUploadAudio를 Observable Audio Collection에 바인딩하는 런타임에 ItemSource를 설정합니다.
<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>
출력에 바인딩 예외가 있습니까? – luke
다음은 Binding Exceptions에 대한 것입니다. System.Windows.Data 오류 : 39 : BindingExpression 경로 오류 : 'TarpIds'속성이 '개체'에서 발견되지 않았습니다. ''오디오 '(HashCode = 2056998)'. BindingExpression : Path = TarpIds; DataItem = '오디오'(HashCode = 2056998); 대상 요소는 'ComboBox'입니다 (Name = 'ListBoxTarpIDs'). 대상 속성이 'ItemsSource'(유형 'IEnumerable') – user38349
오디오 유형에 "TarpIds"라는 공개 속성이 있습니까? – lesscode