Xamarin.forms 如何访问';在自定义控件中嵌入了什么?

Xamarin.forms 如何访问';在自定义控件中嵌入了什么?,xamarin.forms,Xamarin.forms,如何访问嵌入自定义控件中的用户修改值 我有一个自定义控件: <ContentView x:Class="MyNamspce.LabelValuePair" x:Name="ParentControl" mc:Ignorable="d"> <ContentView.Content> <StackLayout> ... <Entry Text="{Binding

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

我有一个自定义控件:

<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}}" />
我成功地将值加载到自定义控件中。 但是,在用户修改这些值之后,我无法检索它们

注意:

每次我通过用户界面编辑条目控件值时,都会触发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被绑定到整个列表项对象,然后使用转换器从对象的string属性提取字符串。这是一种不寻常的方法,我看不出有什么真正的原因。相反,为什么不直接绑定到对象上的属性?>例如:

ValueText="{Binding EntryValue}"

您在contentview中的绑定方式很奇怪。您可以尝试像此线程一样使用
propertyChanged
来获取嵌入自定义控件中的用户修改值。这也是一个很好的参考。本视频帮助中的示例-?
ValueText="{Binding EntryValue}"