windows store app,绑定到父gridview属性

时间:2015-08-21 12:23:15

标签: c# xaml windows-store-apps

如何从itemTemplate gridview绑定父属性?

<GridView ItemsSource="{Binding UsersViewModel}" ItemTemplate="{StaticResource UsersTemplate}">            

<DataTemplate x:Key="UsersTemplate">        
        <ListView VerticalAlignment="Top" ItemsSource="{Binding Users}"
                  Height="{Binding Window.Current.Bounds.Height}"   
                  Width="{Binding PARENT?.ColWidth}"
                  ScrollViewer.VerticalScrollBarVisibility="Visible"                    
                  ItemTemplateSelector="{StaticResource UserTemplateSelector}"
                  ItemContainerStyle="{StaticResource LvItemStyle}" >
        </ListView>        
</DataTemplate>

ColWidth属性在UsersViewModel中定义

1 个答案:

答案 0 :(得分:0)

您的 Xaml 代码的某些内容感觉不对,因为您将GridView的{​​{1}}绑定到感觉像ItemSource的{​​{1}} {1}}而不是收藏! (UsersViewModel应绑定到集合)。 如果property确实是一个类对象的集合,其中包含ItemSource属性,那么UsersViewModel中的一个简单绑定应该可以解决问题,

ColWidth

现在如果DataTemplateWidth="{Binding ColWidth}" 的{​​{1}},那么你的代码应该看起来像那样,

UsersViewModel

在这种情况下,如果在GridView对象中定义了DataContext属性,那么从子级访问父级<GridView DataContext="{Binding UsersViewModel}" ItemsSource="{Binding ACollectionInsideUsersViewModel}" ItemTemplate="{StaticResource UsersTemplate}"> 的最简单方法是使用ColWidth绑定:

UsersViewModel