की सदस्यता के लिए मैं इस कस्टम रेंडरर का उपयोग कर रहा जरूरत है:मैं अब इस आईओएस रेंडरर को आसान बनाने में कर सकते हैं कि मैं अब स्पष्ट रूप से संपत्ति-बदल-घटना
public class ExtViewCellRenderer : ViewCellRenderer
{
UITableViewCell _nativeCell;
public override UITableViewCell GetCell(Cell item, UITableViewCell reusableCell, UITableView tv)
{
_nativeCell = base.GetCell(item, reusableCell, tv);
var formsCell = item as ExtViewCell;
if (formsCell != null)
{
formsCell.PropertyChanged -= OnPropertyChanged;
formsCell.PropertyChanged += OnPropertyChanged;
}
SetTap(formsCell);
return _nativeCell;
}
void OnPropertyChanged(object sender, PropertyChangedEventArgs e)
{
var formsCell = sender as ExtViewCell;
if (formsCell == null)
return;
if (e.PropertyName == ExtViewCell.NoTapProperty.PropertyName)
{
SetTap(formsCell);
}
}
private void SetTap(ExtViewCell formsCell)
{
if (formsCell.NoTap)
_nativeCell.SelectionStyle = UITableViewCellSelectionStyle.None;
else
_nativeCell.SelectionStyle = UITableViewCellSelectionStyle.Default;
}
}
मैंने पढ़ा है कि यह अब स्पष्ट रूप से करने के लिए आवश्यक है एक TextCellRenderer
साथ प्रॉपर्टी-चेंज-इवेंट की सदस्यता लें क्योंकि बेस ओवररिडेबल विधि HandlePropertyChanged
है जिसे इस संदर्भ में दोबारा उपयोग किया जा सकता है।
क्या कोई मुझे बता सकता है कि यह ViewCellRenderer
के लिए भी मामला है और यदि ऐसा है तो मैं इसका उपयोग करने के लिए इस कोड को कैसे संशोधित कर सकता हूं? लेकिन यहाँ नहीं
public override UITableViewCell GetCell(Cell item, UITableViewCell reusableCell, UITableView tv)
{
var textCell = (TextCell)item;
var fullName = item.GetType().FullName;
cell = tv.DequeueReusableCell(fullName) as CellTableViewCell;
//...
:
मैं भी एक और रेंडरर में इस तरह कोड को देखा। क्या यह Cell = tv.DequeueReusableCell
करना आवश्यक है?
व्यूसेलर प्रस्तुतकर्ता स्रोत: https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Platform.iOS/Cells/ViewCellRenderer.cs – Nkosi
टेक्स्टसेलर विक्रेता स्रोत: https://github.com/xamarin /Xamarin.Forms/blob/master/Xamarin.Forms.Platform.iOS/Cells/TextCellRenderer.cs – Nkosi
'TextCellRenderer' में 'वर्चुअल वर्चुअल शून्य हैंडलप्रॉपर्टी चेंज' है जिसे ओवरराइड किया जा सकता है, हालांकि 'ViewCellRenderer' अपने 'ViewCellPropertyChanged को उजागर नहीं कर रहा है 'क्योंकि यह' निजी 'है – Nkosi