gpt4 book ai didi

xamarin.forms - 如何访问嵌入在自定义控件中的用户修改值?

转载 作者:行者123 更新时间:2023-12-04 13:35:30 24 4
gpt4 key购买 nike

如何访问嵌入在自定义控件中的用户修改值?

我有一个自定义控件:

<ContentView
x:Class="MyNamspce.LabelValuePair"
x:Name="ParentControl"
mc:Ignorable="d">
<ContentView.Content>
<StackLayout>
...
<Entry Text="{Binding Source={x:Reference ParentControl}, Path=ValueText}" />
</StackLayout>
</ContentView.Content>
</ContentView>

下面是我如何使用自定义控件:
<local:LabelValuePair
...
ValueText="{Binding ., Converter={StaticResource PairTemplateToEntryConverter}}" />

这是后备数据结构:
type LabelEntryPair2 () =

member val LabelFGColor = "" with get,set
member val Label = "" with get,set
member val EntryValue = "" with get,set
member val ValueFGColor = "" with get,set

我成功地将值加载到自定义控件中。
但是,在用户修改这些值后,我无法检索它们。

注:

每次我通过用户界面编辑条目控件值时,都会触发 ValueText 属性的 setter :

在我编辑条目值后,值转换器 PairTemplateToEntryConverter 从不调用 ConvertBack 方法。
public static BindableProperty ValueTextProperty = BindableProperty.Create(
propertyName: "ValueText",
returnType: typeof(string),
declaringType: typeof(LabelValuePair),
defaultValue: "",
defaultBindingMode: BindingMode.TwoWay);

public string ValueText
{
get { return (string)GetValue(ValueTextProperty); }
set { SetValue(ValueTextProperty, value); } // ** This is being triggered every time **
}

但是,我无法在实际数据结构(即 LabelEntryPair2)上获取这些更新

总之,如何访问嵌入在自定义控件中的用户修改值?

最佳答案

这里的问题是:

ValueText="{Binding ., Converter={StaticResource PairTemplateToEntryConverter}}"
因此 ValueText 被绑定(bind)到整个列表项对象,然后使用转换器从对象的字符串属性中提取字符串。这是一种不寻常的方法,我看不出真正的原因。相反,为什么不直接绑定(bind)到对象上的属性?> 例如:
ValueText="{Binding EntryValue}"

关于xamarin.forms - 如何访问嵌入在自定义控件中的用户修改值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62330963/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com