繁体   English   中英

WP7 XAML绑定到父级中的属性

[英]WP7 XAML Bind to property in parent

我正在WP7(Silverlight 3)中编写一个应用程序。 我有一个看起来像这样的视图模型

public class MainViewModel
{
   public List<ActivityTypes> ActivityTypes{get;set;}
   public RelayCommand LoadActivity{get;set;}
}

我的页面数据上下文设置为视图模型,我有一个列表框,其项目源设置为ActivityTypes集合。 在列表框中,我尝试呈现一个按钮列表,这些按钮的命令绑定到viewmodel的LoadActivity属性。 如果您想知道RelayCommand是MVVM Light工具包的一部分,则可以使用它。

我遇到的问题是我找不到将按钮命令绑定到LoadActivity属性的方法,因为我的列表框的itemsource设置为Activitytypes集合,并且此属性位于父级中。 我已经阅读了有关FindAncester的信息,但Silverlight 3似乎不支持此功能。

我的XAML看起来像这样

    <UserControl.Resources>
        <DataTemplate x:Key="ActivityTypeListTemplate">
            <StackPanel>
                <Button Command="{Binding LoadActivity}"> <!--binding not found as we're in the collection-->
                    <TextBlock Text="{Binding Name}" FontSize="50"/>
                </Button>
            </StackPanel>
        </DataTemplate>
    </UserControl.Resources>

    <Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}">
        <ListBox Margin="0" ItemsSource="{Binding ActivityTypes}" ItemTemplate="{StaticResource ActivityTypeListTemplate}"/>
    </Grid>

编写这样的代码的最佳方法是什么?

没有“直接”方式来执行此操作。 您可以将Buttons DataContext设置为MainViewModel(最好是StaticResource链接),它将起作用。

看看在xaml绑定到父对象

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM