<Picker
Title="Select a Profile"
ItemsSource="{Binding ProfileManager.Profiles}"
ItemDisplayBinding="{Binding Name}"
SelectedItem="{Binding SelectedProfile, Mode=TwoWay}"
HorizontalOptions="CenterAndExpand"
VerticalOptions="CenterAndExpand"
SelectedIndex="1"
HeightRequest="200"
WidthRequest="325"
Margin="10"
BackgroundColor="{StaticResource Secondary}">
</Picker>
itemSource
属性具有x:DataType="ViewModels:ParametersViewModel"
数据类型,但是ItemDisplayBinding
具有x:DataType="Models:Profile"
数据类型。
我怎样才能分别定义这些数据类型?
2条答案
按热度按时间aelbi1ox1#
从文档Populate a Picker with data using data binding中,我们可以发现
还可以使用数据绑定将Picker的ItemsSource属性绑定到IList集合,从而用数据填充Picker。
绑定到对象列表时,必须告知选取器要显示每个对象的哪个属性。这可以通过将每个对象的
ItemDisplayBinding
属性设置为required属性来实现。在上面的代码示例中,选取器设置为显示每个Monkey.Name
属性值。因此,上面代码中的
ItemDisplayBinding
属性(Name
)应该是ItemsSource
(ProfileManager.Profiles
)中每个对象(Profile
)的必需属性。实际上,我们不必也不需要为Picker指定所谓的
x:DataType
。您可以在这里找到MonkeyAppPicker的官方示例,虽然它是用xamarin编写的,但在MAUI上的实现几乎是相同的。
xe55xuns2#
不确定这个答案是否适合您,但是您可以通过澄清
Ancestor Type
在同一个XAML文件中定义不同的数据类型。一旦在根中设置了DataType(在本例中为ContentPage),默认情况下其子级的所有绑定都将转到该数据类型。