2014-04-23 2 views
0

에서 변경 XAML의 조각입니다 :WPF DataGrid의 ItemsSource 여기 콤보

<ComboBox ItemsSource="{Binding UnileverDataSet.Tables, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Margin="5" x:Name="TableNameComboBox"> 
        <ComboBox.ItemTemplate> 
         <DataTemplate> 
          <TextBlock Text="{Binding TableName}"></TextBlock> 
         </DataTemplate> 
        </ComboBox.ItemTemplate> 
       </ComboBox> 
       <DataGrid Margin="5" AutoGenerateColumns="True" ItemsSource="{Binding UnileverDataSet.Tables[TableNameComboBox.SelectedIndex]}" 

UnileverDataSet은 약 12 ​​DataTable들로 구성된 DataSet입니다

여기에 생각이 그 때 ComboBox 값이 변경, DataGridComboBox의 인덱스 값을 기반으로 업데이트해야합니다.

이것이 가능합니까 아니면 이것을 수행하는 다른 방법을 고려해야합니까?

내가 수행하는 작업 : UnileverDataSet.Tables[0]이면 모든 작업과 데이터가 올바르게 표시됩니다. 당신은 콤보 상자 바인딩 요소를 할 수

답변

0

..

귀하의 combox는 "UnileverDataSet.Tables"컬렉션 항목의 목록이 표시됩니다. 콤보에있는 당신의 선택 인 아이템이 선택한 항목을 상자 이제까지 (우리가 바인딩 요소를 사용하고 있기 때문에) 데이터 격자 항목 소스에 경계 할 때 여기에

<DataGrid Margin="5" AutoGenerateColumns="True" ItemsSource="{Binding SelectedItem,ElementName=TableNameComboBox}"> 
+0

내가 그리드에 바인딩 할 샘플 코드를입니다 DataSet의 테이블 및 ComboBox가 값을 변경하면 ComboBox의 인덱스에 지정된 테이블을 사용하도록 Grid를 업데이트합니다. 나는 이것이 DataGrid.ItemsSource = DataSet.Tables [TableNameComboBox.SelectedIndex]와 같은 코드에서 수행 될 수 있지만 xaml에서 수행하기를 원한다는 것을 알고있다. – Ric

+0

내 대답에 설명이 추가되어 작동 원리를 설명합니다. 나는 요소 바인딩이 귀하의 경우에 작동하도록 100 % 확신합니다 – Bathineni

+0

마치 작동해야하지만 그리드가 업데이트되지 않는 것처럼 보입니다 : S – Ric

관련 문제