我使用listview和headerTemplate。 我需要创建一个bindableproperty来向我的模板添加一个Text。
所以我在我的headertemplate“MyMenuHeader”中创建了一个可绑定属性:
public static readonly BindableProperty TitleTextproperty =
BindableProperty.Create("TitleText", typeof(String), typeof(MyMenuHeader), null);
public String TitleText
{
get { return (String)GetValue(TitleTextproperty); }
set {
SetValue(TitleTextproperty, value);
OnPropertyChanged("TitleText");
}
}
var nomGroup = new Label
{
TextColor = Color.FromHex(ConstColor.PrimaryPrastel),
HorizontalOptions = LayoutOptions.CenterAndExpand,
FontSize = 15,
HorizontalTextAlignment = TextAlignment.Start,
VerticalOptions = LayoutOptions.Center,
};
nomGroup.SetBinding(Label.TextProperty, "TitleText");
BindingContext = this;
在我的列表视图中,我尝试使用“设置值”设置此属性:
//Design des cellules de groupe
var cellGroup = new DataTemplate(typeof(MyMenuHeader));
cellGroup.CreateContent();
cellGroup.SetValue(MyMenuHeader.TitleTextproperty, _dataMenu._nomMenu);
HeaderTemplate = cellGroup;
但我的属性已设置但从未显示在标签中。
致以最诚挚的问候,
编辑:我有一个新参数bindableproperty.create
public static readonly BindableProperty TitleTextProperty =
BindableProperty.Create("TitleText", typeof(String), typeof(MyRelaiTabCell), null, propertyChanged: OnTitleTextChanged);
public String TitleText
{
get { return (String)GetValue(TitleTextProperty); }
set { SetValue(TitleTextProperty, value); }
}
这是这个函数,当属性改变时修改label的值:
static void OnTitleTextChanged(BindableObject bindable, object oldValue, object newValue)
{
var menu = (bindable as MyRelaiTabCell);
// Property changed implementation goes here
menu._titleText.SetValue(Label.TextProperty, (newValue as String));
}
它的工作只是以一种方式。视图模型 - > viewcell。所以当我设定价值。当我尝试在改变时获得价值时,我没有信息。