2016-08-24 3 views
0

Редактор внутри ListView, не поддерживающей Scrollingредактор не поддерживает прокрутку внутри ListView для UWP Xamarin

скроллинг поддерживает в обоих Android и IOS, но я адресности проблемы с UWP

<ListView 
     x:Name="listProjects" 
     HasUnevenRows="true" 
     SeparatorVisibility="None" 
     ItemsSource="{Binding Feedbacks}" 
     HorizontalOptions="FillAndExpand" 
     ItemTapped="Handle_ItemTapped"> 

     <ListView.ItemTemplate> 
      <DataTemplate> 
      <ViewCell> 
      <StackLayout Padding="15,15,15,15" BackgroundColor="Transparent"> 
       <Editor HeightRequest="50" FontSize="Small"/> 
       </StackLayout> 
      </ViewCell> 
      </DataTemplate> 
      </ListView.ItemTemplate> 
</ListView> 

ответ

0

прокрутка поддерживается как в android, так и в ios, но у меня проблема с UWP

Да, в настоящее время управление редактором не прокручивать, как ребенок ViewVell в UWP приложения, я видел, как вы создали ошибку в Bugzilla сайта: https://bugzilla.xamarin.com/show_bug.cgi?id=43660

Обходной здесь должен настроить ViewCell и создать пользовательский визуализатор на каждой платформе. Для UWP в качестве альтернативы используйте управление RichEditBox или другое прокручиваемое управление.

Пожалуйста, смотрите документ: Customizing a ViewCell

XAML:

<ListView.ItemTemplate> 
    <DataTemplate> 
    <local:NativeCell Name="{Binding Name}" Category="{Binding Category}" /> 
    </DataTemplate> 
</ListView.ItemTemplate> 

NativeCell:

public class NativeCell : ViewCell 
{ 
    public static readonly BindableProperty NameProperty = 
     BindableProperty.Create("Name", typeof(string), typeof(NativeCell), ""); 

    public string Name 
    { 
     get { return (string)GetValue(NameProperty); } 
     set { SetValue(NameProperty, value); } 
    } 

    public static readonly BindableProperty CategoryProperty = 
     BindableProperty.Create("Category", typeof(string), typeof(NativeCell), ""); 

    public string Category 
    { 
     get { return (string)GetValue(CategoryProperty); } 
     set { SetValue(CategoryProperty, value); } 
    } 
} 

Customized визуализации для UWP:

using WorkingWithListview; 
using WorkingWithListview.UWP.Renderers; 
using Xamarin.Forms; 
using Xamarin.Forms.Platform.UWP; 

[assembly: ExportRenderer(typeof(NativeCell), typeof(NativeUWPCellRenderer))] 
namespace WorkingWithListview.UWP.Renderers 
{ 
    public class NativeUWPCellRenderer : ViewCellRenderer 
    { 
     public override Windows.UI.Xaml.DataTemplate GetTemplate(Cell cell) 
     { 
      return App.Current.Resources["ListViewItemTemplate"] as Windows.UI.Xaml.DataTemplate; 
     } 
    } 
} 

Шаблон данных в App.xaml:

<DataTemplate x:Key="ListViewItemTemplate"> 
     <Grid Background="LightBlue"> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="Auto" /> 
       <RowDefinition Height="100" /> 
       <RowDefinition Height="Auto" /> 
      </Grid.RowDefinitions> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="0.40*" /> 
       <ColumnDefinition Width="0.40*"/> 
       <ColumnDefinition Width="0.20*" /> 
      </Grid.ColumnDefinitions> 
      <RichEditBox Grid.Row="1" /> 
      <TextBlock Grid.ColumnSpan="2" Foreground="#7F3300" FontStyle="Italic" FontSize="22" VerticalAlignment="Top" Text="{Binding Name}" /> 
      <Line Grid.Row="2" Grid.ColumnSpan="3" X1="0" X2="1" Margin="30,20,0,0" StrokeThickness="1" Stroke="LightGray" Stretch="Fill" VerticalAlignment="Bottom" /> 
     </Grid> 
    </DataTemplate> 

Скриншот: enter image description here

Проверьте мой завершенный образец here

+0

Спасибо, Франклин, его работа, но здесь мне также нужно установить контекст привязки к редактору, но RichEditBox не вызывает свойство Text. –

+0

@SachinKs Полезно знать, так ли это приемлемый ответ на ваш вопрос? ;) –

+0

да, это приемлемо, но здесь мне также нужно установить привязку контекста к свойству Text, чтобы установить текст по умолчанию в RichEditBox, есть ли способ сделать это? –