如果我有一个带有以下MvxListView定义的视图:
<Mvx.MvxListView
android:layout_marginTop="10px"
android:textFilterEnabled="true"
android:choiceMode="singleChoice"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textSize="20dp"
local:MvxBind="ItemsSource Data; ItemClick LaunchCapabilityViewCmd"
local:MvxItemTemplate="@layout/itemtemplate1" />
Run Code Online (Sandbox Code Playgroud)
而不是将MvxItemTemplate硬编码为itemtemplate1,可以根据我想在此视图中显示的数据类型动态设置它吗?我正在寻找与WPF的DateTemplateSelector类似的功能.
TIA.
itemtemplate android-layout mvvmcross xamarin itemtemplateselector
在我们的数据网格中,我们使用a ItemTemplateSelector根据绑定到特定单元格的数据在两个数据模板之间切换.
由于列数取决于我们AutoGenerateColumns在我们使用的当前数据集DataGrid.
看起来这种特殊的组合效果不好 -
甚至没有调用模板选择器.
我们可以在自动创建列的数据网格中使用模板选择器吗?
更具体地说:这是否可以使用XAML而不将逻辑放入代码隐藏文件或使用自定义行为?
我们的数据网格定义相当简单:
<DataGrid
ItemTemplateSelector="{StaticResource myCustomDataTemplateSelector}"
ItemsSource="{Binding MyData}">
<DataGrid.Columns>
</DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)
该项目模板选择定义:
<UserControl.Resources>
<ResourceDictionary>
<helpers:CustomDataTemplateSelector x:Key="myCustomDataTemplateSelector"/>
</ResourceDictionary>
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud) ItemTemplateSelector应用于对象集合 - 例如ItemsControl.
单项控件是否有相同的功能?我想选择一个考虑对象内部值的数据模板.我可以为列表而不是单个项目执行此操作.
编辑:
在另一个屏幕中我有这个实现:
<ItemsControl ItemsSource="{Binding Path...} ItemTemplateSelector={...}
Run Code Online (Sandbox Code Playgroud)
问题是,现在我只有一个项目,但仍然希望有一个itemtemplateselector ...
编辑2:
出现的问题也可能是:我怎样才能在ItemsSource中只放一个项目?
我正在编写我的Windows Phone 8应用程序,它使用LongListSelector来显示一些数据.
如何为LongListSelector中的第一个和最后一个项设置不同的项模板?
基本上我只想在每个项目中显示相同的信息,但在最后和第一项中使用很少的不同项目"布局".
itemtemplate longlistselector itemtemplateselector windows-phone-8
见下文,所有 DataTemplates 都具有相同的前两个 TextBlock。
在 fieldStringTemplate 和 fieldDateTemplate 中,我想引用 fieldTemplate 所以我不重复这两个。
如何从 DataTemplate 引用 DataTemplate?
真正的应用程序有更多的模板和更多的常见元素。
在实际应用中,这些是实现 Field 的类。
FieldTemplateSelector 基于类。
<Window.Resources>
<local:FieldTemplateSelector x:Key="fieldTemplateSelector"/>
<DataTemplate x:Key="fieldTemplate">
<StackPanel>
<TextBlock Text="{Binding Path=Name}" />
<TextBlock Text="{Binding Path=DisplayValue}" />
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="fieldStringTemplate">
<StackPanel>
<TextBlock Text="{Binding Path=Name}" />
<TextBlock Text="{Binding Path=DisplayValue}" />
<TextBox Text="{Binding Path=FieldValue}" />
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="fieldDateTemplate">
<StackPanel>
<TextBlock Text="{Binding Path=Name}" />
<TextBlock Text="{Binding Path=DisplayValue}" />
<DatePicker SelectedDate="{Binding Path=FieldValue}" />
</StackPanel>
</DataTemplate>
</Window.Resources>
<Grid>
<ListBox ItemsSource="{Binding Path=Fields}"
ItemTemplateSelector="{StaticResource fieldTemplateSelector}"
HorizontalContentAlignment="Stretch">
</ListBox> …Run Code Online (Sandbox Code Playgroud) wpf ×3
datatemplate ×2
itemtemplate ×2
.net ×1
c# ×1
datagrid ×1
mvvm ×1
mvvmcross ×1
xamarin ×1