如何将LayoutRoot的DataContext传递给ListBox项目模板中ContentControl的转换器?
<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>
我希望能够从Converter中触摸DataContext中的对象,并使用它们对ListBox项目的datatemplate中的控件进行TwoWay绑定。
有什么想法吗?有什么建议吗?
谢谢。
答案 0 :(得分:1)
我只是使用以下方法将DataContext连接到转换器:
<ContentControl Content="{Binding}"
ContentTemplate="{Binding Converter={StaticResource stringToDataTemplateConverter}, ConverterParameter={StaticResource myViewModel}}" />
现在我有另一个问题,我的动态属性绑定无效。
答案 1 :(得分:0)
(抱歉我的英语不好)
我不确定你要在这里做什么但是使用SL 5你可以使用RelativeSource
来获取DataContext:
{Binding DataContext,RelativeSource={RelativeSource AncestorLevel=1,AncestorType=Grid}}