Derzeit habe ich eine benutzerdefinierte ViewCell mit einem Vorlagenselektor an eine ObservableCollection gebunden. Ich habe die benutzerdefinierte Zellenvorlage an meine Xamarin.Forms IOS ListView gebunden.Xamarin.Forms ListView mit CustomViewCell deaktivieren Ausgewählte Element Farbe
Mein Problem ist, dass ich die Hervorhebung des ausgewählten Elements deaktivieren kann nicht, die graue Farbe erscheint nur, wenn ich das ausgewählte Element über die MenuContext Aktionen duplizieren ....
Ive versuchte jede Gewohnheit Renderer, die ich gefunden auf das Internet :) ich gebe fast auf, scheint, dass ich dieses Problem nicht beheben kann, vielleicht kann mir jemand einige Informationen geben.
Vielleicht verwende ich einen falschen benutzerdefinierten Renderer. Brauche ich einen Renderer für dieses Problem?
ViewCellRenderer
[assembly: ExportRenderer(typeof(GerätViewCell), typeof(NativeViewCellRenderer))]
namespace LindeXF.iOS.Renderer {
public class NativeViewCellRenderer : ViewCellRenderer {
public override UITableViewCell GetCell(Cell item, UITableViewCell reusableCell, UITableView tv) {
var cell = base.GetCell(item, reusableCell, tv);
if (cell != null)
cell.SelectionStyle = UITableViewCellSelectionStyle.None;
return cell;
}
}
}
Individuelle ViewCell
<ViewCell xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="LindeXF.Core.CustomTemplates.GerätViewCell"
>
<ViewCell.ContextActions>
<MenuItem x:Name="MenuItemDuplizieren"
CommandParameter="{Binding Id}"
Clicked="OnDuplizierenClicked"
Text="Duplizieren" />
<MenuItem x:Name="MenuItemLöschen"
CommandParameter="{Binding Id}"
Clicked="OnLöschenClicked"
Text="Löschen"
IsDestructive="True" />
</ViewCell.ContextActions>
<Grid ColumnSpacing="0" BackgroundColor="White">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="40"/>
<ColumnDefinition Width="9*"/>
<ColumnDefinition Width="7*"/>
<ColumnDefinition Width="10*"/>
<ColumnDefinition Width="5*"/>
<ColumnDefinition Width="18*"/>
<ColumnDefinition Width="10*"/>
<ColumnDefinition Width="10*"/>
</Grid.ColumnDefinitions>
<BoxView BackgroundColor="{Binding BoxColor}" Grid.Column="0"/>
<Label FontSize="14" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" Text="{Binding Test}" Grid.Column="1"/>
<Label FontSize="14" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" Text="{Binding Test}" Grid.Column="2"/>
<Label FontSize="14" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" Text="{Binding Test}" Grid.Column="3"/>
<Label FontSize="14" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" Text="{Binding Test}" Grid.Column="4"/>
<Label FontSize="14" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" Text="{Binding Test}" Grid.Column="5"/>
<Label FontSize="14" HorizontalTextAlignment="End" Margin="0,0,5,0" VerticalTextAlignment="Center" Text="{Binding Test}" Grid.Column="6"/>
<Label FontSize="14" HorizontalTextAlignment="End" Margin="0,0,5,0" VerticalTextAlignment="Center" Text="{Binding Test}" Grid.Column="7"/>
</Grid>
</ViewCell>
Listview
<ListView x:Name="ListViewKalkulation"
Margin="1,0,1,1"
ItemTapped="ListViewKalkulationText_OnItemTapped"
ItemTemplate="{StaticResource TemplateSelector}"
ChildAdded="ListViewKalkulation_OnChildAdded"
ItemSelected="ListViewKalkulation_OnItemSelected"
SeparatorVisibility="None"
BackgroundColor="Silver"
Grid.Row="1" />
Danke für deine Zeit!
Hallo, Vielleicht schaffen Sie mehr informtation über das Problem, zu erwähnen wäre schön, warum Sie Ihre viewcell machen custome wollen. ein Anwendungsszenario wäre nett :) – BraveHeart
Hej, tut mir leid, ich dachte, dass das Problem klar war :) Ich möchte nur die Hervorhebung der Listview Elemente deaktivieren, wenn ich mit ihnen interagiere (die hässliche graue Farbe, die nicht gehen) dachte ich dass es vielleicht nicht möglich ist, weil ich eine View-Zelle als mein Listview-Element verwende –