我通过代码将对象列表传递给XAML。我得到的输出是" X模型"因为它是一个对象。如何在XAML中读取该对象的特定数据?
<ListView ItemsSource="{Binding toBinding, Mode=TwoWay}"/>
代码背后的代码:
public List<MyObject> toBinding{ get; set; }
public constructor() {
//..passing a list of "MyObject" into passingObjectList;
toBinding = passingObjectList;
}
MyObject
含有:
public int Id { get; set; }
public string Name { get; set; }
我如何阅读,例如Name
和Id
在屏幕上显示"X model"
?
答案 0 :(得分:0)
答案 1 :(得分:0)
编辑:Xamarin.Forms与WPF不同......如果您正在开发Xamarin.Forms应用,请试试这个:
<ListView ItemsSource="{Binding toBinding}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Text="Id:" />
<TextBlock Grid.Row="1" Text="Name:" />
<Label Grid.Column="1" Text="{Binding Id}" />
<Label Grid.Row="1" Grid.Column="1" Text="{Binding Name}" />
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
以下内容仅适用于WPF。
如果要显示 名称或ID,可以使用DisplayMemberPath属性:
<ListView ItemsSource="{Binding toBinding}" DisplayMemberPath="Name"/>
如果要显示两者,则应定义一个ItemTemplate,其中包含一个可以容纳至少两个TextBlocks(以及任何其他UIElements)的Panel:
<ListView ItemsSource="{Binding toBinding}">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Text="Id:" />
<TextBlock Grid.Row="1" Text="Name:" />
<TextBlock Grid.Column="1" Text="{Binding Id}" />
<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Name}" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
答案 2 :(得分:0)
按以下步骤操作:
<ListView ItemsSource="{Binding toBinding, Mode=TwoWay}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid>
<Label Text="{Binding Name}" />
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
这应该做的工作