xamarin.forms - 如何获取 BindableProperty 的值?
问题描述
我想获得 BindableProperty 的值,因为我希望我的 BindableProperty 有两种状态,因为我可以区分
<local:MyEntry event="{Binding Flag, Mode=TwoWay}">
在我的自定义条目中:
public static BindableProperty EventProperty =
BindableProperty.Create("event", typeof(string), typeof(MyEntry), "sigle", propertyChanged: (obj, oldValue, newValue) =>
{ });
private string flag;
public string Flag
{
get { return flag; }
set
{
if (flag != value)
{
flag = value;
NotifyPropertyChanged("event");
}
}
}
在我的 viewModel 中,这是代码:
private string flag;
public string Flag
{
get { return flag; }
set
{
if (flag != value)
{
flag = value;
RaisePropertyChanged(() => Flag);
}
}
}
private async Task Execute()
{
Flag = "Change";
}
在我的自定义渲染器中
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
Console.WriteLine("HERE "+ (entry as MyEntry).Flag);
//here i want to get the value
在答案的帮助下
if (e.PropertyName == MyEntry.EventProperty.PropertyName)
{
var entry = Element as MyEntry;
var Flag = entry.Flag;
Console.WriteLine("... "+ Flag);
解决方案
在自定义渲染器中
public static BindableProperty FlagProperty = BindableProperty.Create("Flag", typeof(string), typeof(MyEntry), string.Empty, propertyChanged: (obj, oldValue, newValue) =>
{
var entry = obj as MyEntry;
entry.Flag = newValue.ToString();
});
private string flag;
public string Flag
{
get { return flag; }
set
{
if (flag != value)
{
flag = value;
NotifyPropertyChanged("Flag");
}
}
}
在自定义渲染器中
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
if (e.PropertyName == MyEntry.EventProperty.PropertyName)
{
// will been invoked when the value changed
var entry = Element as MyEntry;
var Flag = entry.Flag;
}
}
推荐阅读
- c# - GetHashCode 用于保存字符串字段的类型
- c# - 使用 EWS 创建两次或三次约会
- angular - 不应存在的角材料日期范围选择器错误角10
- c# - SQL 错误“您未连接,因为网络上存在重复名称”
- snipcart - 如何防止每次将商品添加到购物车时出现购物车?
- reactjs - 有条件地从组件中移除道具
- sql - 按 Sql Server 中的一列分组并按未包含在聚合函数或 GROUP BY 子句中的另一列排序
- python - 如何验证和知道 URL 是否是 Google Docs URL?|Python,烧瓶|
- reactjs - custom-cra 为 JEST 编译 node_modules
- javascript - 如何将对象值数组转换为数字