首页 > 解决方案 > 访问 ListView 中不是来自 ItemsSource 的属性

问题描述

ListView的一定要MyTexts列出来。尽管如此,我需要绑定TextCell's Text到不是来自Texts( StandAloneProperty) 的属性。我怎样才能做到这一点?

<ListView
            SelectedItem="{Binding SelectedText, Mode=TwoWay}"
            ItemsSource="{Binding MyTexts}">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <TextCell
                        Text="{Binding StandAloneProperty, StringFormat='Value: {0}'}"
                        TextColor="{Binding Color}"
                    />                    
                </DataTemplate>
            </ListView.ItemTemplate>
</ListView>

标签: xamlxamarinxamarin.formsdata-binding

解决方案


将您的绑定设置为当前页面,并从您的 ViewModel BindingContextSource访问。StandAloneProperty

<ContentPage x:Name="pageRef"
...

<ListView
            SelectedItem="{Binding SelectedText, Mode=TwoWay}"
            ItemsSource="{Binding MyTexts}">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <TextCell
                        Text="{Binding Source={x:Reference pageRef} Path=BindingContext.StandAloneProperty, StringFormat='Value: {0}'}"
                        TextColor="{Binding Color}"
                    />                    
                </DataTemplate>
            </ListView.ItemTemplate>
</ListView>

推荐阅读