2012-03-02 78 views
1

如何將LayoutRoot的DataContext傳遞給ListBox項目模板內的ContentControl的轉換器?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可以使用RelativeSource得到的DataContext:

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

它不工作:( – asuciu 2012-03-02 21:29:29

+1

您無法在綁定中使用綁定,因此您無法使用此方法來設置轉換器參數。 – 2012-03-02 21:32:13

相關問題