gpt4 book ai didi

silverlight - 从 DataTemplate 中的 DataTemplate 中引用 ViewModel DataContext

转载 作者:行者123 更新时间:2023-12-03 10:23:27 32 4
gpt4 key购买 nike

我发现自己有点束手无策……有束缚……呵呵……(跛脚)

无论如何...我需要引用主 ViewModel 的属性,但来自 DataTemplate ,它本身在另一个 DataTemplate 中... 看起来是唯一的 RelativeSource Silverlight 允许的模式是:Self 和 TemplatedParent。而 TemplatedParent 还不够。

有什么可以做的吗?

一些代码:

<phone:PanoramaItem>
<phone:LongListSelector Margin="0,-38,-22,2" ItemsSource="{Binding Items}">
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<common:ItemContentTemplateSelector DataContext="{Binding}" Content="{Binding ItemContent}" HorizontalContentAlignment="Stretch" Margin="12,2,0,4">
<common:ItemContentTemplateSelector.DefaultTemplate>
<DataTemplate>
.....
</DataTemplate>
</common:ItemContentTemplateSelector.DefaultTemplate>
<common:ItemContentTemplateSelector.PhoneNumberTemplate>
<DataTemplate>
<Grid Background="White" Height="102">
<Border x:Name="border">
<TextBlock Text="Call"/>
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonDown">
<!-- BINDING ERROR -->
<i:InvokeCommandAction Command="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=DataContext.PhoneCallCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Border>
</Grid>
</DataTemplate>
</common:ItemContentTemplateSelector.PhoneNumberTemplate>
</common:ItemContentTemplateSelector>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
</phone:PanoramaItem>

最佳答案

如果你不打算解决或轻松解决,
有事要做;

使用静态资源

看看这个;

   MyViewModelClass ViewModel
{
get;set;
}

...ctor()
{
this.ViewModel=new MyViewModelClass();
this.DataContext=this.ViewModel; //We use same VM instance as DataContext as Resource
this.Resoureces.Add("MainVieModel",ViewModel);
InitializeComponents();//...Add resource before this line
}

之后,您可以在任何地方同时使用您的 ViewModel 作为 StaticResource;
{Binding Path=Items,Source={StaticResource ViewModel}}

我在 stackoverflow 的编辑器上编码。可能缺少一些字符...

关于silverlight - 从 DataTemplate 中的 DataTemplate 中引用 ViewModel DataContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18265278/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com