XAML의 바인딩에 다시 문제가 있습니다. 직접 해결할 수 없습니다. 나는 ListView
과 ComboBox
을 가지고있다. ListView
의 ItemsSource
은 TabControl
의보기 모델에 있으며 ComboBox.ItemsSource
도 있습니다. 이 컬렉션에 ComboBox
을 바인딩하려면 어떻게해야합니까? 여기 Tab의 속성에서 ListView의 ComboBox 바인딩
public ObservableCollection<TypeViewModel> ComboBoxSource { get; set; }
public ObservableCollection<CostViewModel> ListViewSource { get; set; }
가이 속성에 CombBox.ItemsSource
을 결합 할 수 있습니다 : 여기
<ListView ItemsSource="{Binding ListViewSource}" SelectedItem="{Binding ListViewSelection}"
ItemTemplate="{DynamicResource ListViewTemplate}">
<ListView.View>
<GridView>
<GridViewColumn Header="...">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding ComboBoxSource}"
SelectedValue="{Binding ...}"
DisplayMemberPath="DisplayName"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn> // ...
그리고 TabViewModel
에서 ItemsSource
속성의 단지 머리는?
바인딩의
window
에 이름을 부여하십시오 :'ItemsSource = " {DataContext.ComboBoxSource 바인딩, RelativeSource = {RelativeSource AncestorType = ListView}} ". –상대 소스는 이전 댓글에 따라 원하는대로 할 수 있습니다. 불행히도, 당신의 질문은 왜'ListView'의 모든 아이템이 같은 드롭 다운을 가지는지 분명하지 않지만 어떤 이유로 상대 소스 접근법이 당신의 요구에 맞지 않는다면 각각의 TypeViewModel에 대해 비합리적이지는 않을 것입니다 '부모보기 모델 (예 :'ComboBoxSource {get {return _parentViewModel.ComboBoxSource;}}')에 위임하는 자체 'ComboBoxSource' 속성을 노출 시키거나 또는 이러한 값의 출처에 따라 어쩌면 싱글 톤이 될 수도 있습니다. –
답장을 보내 주셔서 감사합니다. 불행히도이 방법은 저에게는 효과가 없지만, KMCho가 대답에서 설명했던 방법대로 해결했습니다. {Element ElementName = ControlName, Path = DataContext.ComboBoxSource } – stl