2010-05-26 3 views
0

2 개의 Datatemplates가 있습니다. 하나에는 눈금이 있고 두 번째 눈금에는 단추가 있습니다. 버튼의 명령 매개 변수를 선택한 그리드 항목으로 보내야합니다.wpf에서 다른 datatemplate의 데이터에 액세스하는 방법?

어떻게하면됩니까?

<ObjectDataProvider x:Key="Datas" ObjectType="{x:Type ViewModel:UserControlViewModel}"></ObjectDataProvider> 

<DataTemplate x:Key="SourceGrid"> 
<WPFToolKit:DataGrid x:Name="SourceDataGrid" ItemsSource="{Binding Source={StaticResource Datas},Path=SourceGridData}" CanUserSortColumns="True" GridLinesVisibility="None" IsSynchronizedWithCurrentItem="True" SelectionUnit="FullRow"></WPFToolKit:DataGrid> 
</DataTemplate> 

<DataTemplate x:Key="AddRemoveDataTemplate"> 
<StackPanel> 
<Button Name="Add" Content="Add"> 
<Button.Command> 
<Binding Source="{StaticResource Datas}" Path="AddCommand"> 
</Binding> 
</Button.Command> 
<Binding ElementName="SourceDataGrid" Path="SelectedItem"></Binding> 
</Button.CommandParameter> 
</Button> 
<StackPanel> 
</DataTemplate> 

답변

1

당신은 FindAncestor 모드와 DataGrid 개체에 대해보고 설정 RelativeSource 특성을 가진 Binding를 사용을 시도 할 수 있습니다. 그러나이 두 가지가 서로 어떻게 관련되어 있는지 모르기 때문에 시나리오에서 작동하는지 확신 할 수 없습니다. DataGrid에있는 항목에 두 번째 DataTemplate이 사용됩니까?

어떻게 든 당신의 디자인은 저에게 이상하다고 느낍니다. 두 경우 모두 DataTemplate 초가 필요합니까? 정확히 무엇을 달성하고 싶습니까?

+0

나는 3 개의 datatemplates를 가지고 있습니다. 1- 소스 그리드. 2- 추가/제거 버튼 3 - 대상 그리드 DataGrids에서 선택한 항목은 종속성 속성입니다. 뷰 모델 선언 된 속성에 할당 할 수 있습니까? – Relativity

+0

괜찮습니다. 그러나 "소스 그리드", "버튼 추가/제거"및 "대상 그리드"*는 * 무엇을 의미합니까 * 그리고 그들은 무엇을합니까 *? 더 자세한 정보를 제공해야합니다. 그렇지 않으면 도움을 드릴 수 없습니다. 'SelectedItems'에 대해서 : 그것은 종속 속성이 아닙니다. 'SelectedItem' (singular!)만이 데이터 바인딩에 사용할 수있는 의존성 프로퍼티입니다. 그러나 Event-to-Command 패턴 또는 연결된 속성을 사용하여 'SelectedItems' 속성에 대한 데이터 바인딩을 활성화 할 수 있습니다. [로랑 버그 니온 (Laurent Bugnion)은 최근 이전 접근법에 관해 블로그를 작성했습니다.] (http://tinyurl.com/38kpof9) – gehho