Silverlight передает DataContext в ConverterParameter? - PullRequest
2 голосов
/ 03 марта 2012

Как передать DataContext из LayoutRoot в преобразователь ContentControl внутри шаблона элементов ListBox?

<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 из Конвертера и использовать их для привязки TwoWay к элементам управления в DataTemplate элемента ListBox.

Есть идеи? Есть предложения?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 03 марта 2012

Я только что получил DataContext до конвертера, используя:

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

Теперь у меня есть другая проблема, моя динамическая привязка свойств не работает.

0 голосов
/ 03 марта 2012

(извините за мой плохой английский)

Я не уверен, что вы пытаетесь сделать здесь, но с SL 5 вы можете использовать RelativeSource, чтобы получить DataContext:

{Binding DataContext,RelativeSource={RelativeSource AncestorLevel=1,AncestorType=Grid}}
...