2012-03-02 5 views
1

어떻게 ListBox 항목 템플릿 내의 ContentControl 변환기에 LayoutRoot의 DataContext를 전달할 수 있습니까?Silverlight는 DataContext를 ConverterParameter에 전달합니까?

<Grid x:Name="LayoutRoot" Background="White" DataContext="{Binding Source={StaticResource myViewModel}}"> 
    <StackPanel HorizontalAlignment="Left" Margin="6,6,0,394" Orientation="Vertical" Width="200" d:LayoutOverrides="Height"> 
    <ListBox 
      x:Name="listBox2" 
      ItemsSource="{Binding MyCollection, Mode=TwoWay}" 
      VerticalAlignment="Top" Height="400"> 

      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <ContentControl Content="{Binding}" 
            ContentTemplate="{Binding Converter={StaticResource myConverter}}" /> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 

     </ListBox> 

     <TextBox Text="{Binding Value1, Mode=TwoWay}" /> 
    </StackPanel> 
</Grid> 

나는 컨버터 내에서의 DataContext 내부 개체를 터치 양방향이 목록 상자 항목의 DataTemplate을 내 컨트롤에 바인딩을 사용할 수 있어야합니다.

아이디어가 있으십니까? 어떤 제안?

감사합니다.

답변

1

난 그냥 다음을 사용하여 변환기까지 DataContext를 가져 왔습니다.

<ContentControl Content="{Binding}" 
       ContentTemplate="{Binding Converter={StaticResource stringToDataTemplateConverter}, ConverterParameter={StaticResource myViewModel}}" /> 

이제 동적 속성 바인딩이 작동하지 않는 다른 문제가 있습니다.

0

(내 나쁜 영어 죄송합니다) 당신이 여기에 무엇을하려고에 대한하지만, SL 5 당신이 DataContext를 얻을 RelativeSource을 사용할 수 있습니다 확실하지 않다 :

{Binding DataContext,RelativeSource={RelativeSource AncestorLevel=1,AncestorType=Grid}} 
+0

작동하지 않습니다. ( – asuciu

+1

Bindings 내에서 Bindings를 사용할 수 없으므로이 방법을 사용하여 변환기 매개 변수를 설정할 수 없습니다. –

관련 문제