Wpf 如何使用xaml调用setter将我的字符串添加到父项列表中?

Wpf 如何使用xaml调用setter将我的字符串添加到父项列表中?,wpf,xaml,xamarin,xamarin.forms,Wpf,Xaml,Xamarin,Xamarin.forms,我正在使用Xamarin表单为iOS和Android创建一个段视图 如果我从代码生成它,它工作得很好。 但我想从xaml生成它 像这样 <local:Segment> <local:Segmentbutton text="boy"> <local:Segmentbutton text="girl"> <local:Segment> List<String> buttonTexts = new List<Strin

我正在使用Xamarin表单为iOS和Android创建一个段视图

如果我从代码生成它,它工作得很好。 但我想从xaml生成它

像这样

<local:Segment>
    <local:Segmentbutton text="boy">
    <local:Segmentbutton text="girl">
<local:Segment>
List<String> buttonTexts = new List<String>();
buttonTexts.Add ("B");
buttonTexts.Add ("G");

segment = new AXSegment (buttonTexts, 50, Color.FromHex ("#000000"), AppConstants.GlobalColor, Color.FromHex ("#EEEEEE"));
segment.buttonCallback = SexSegmentButtonChanged;
segment.SelectedIndex = 0;

在我的Segment类中,它生成按钮并添加到列表以控制它们

当我用代码生成我的段时,看起来像这样

<local:Segment>
    <local:Segmentbutton text="boy">
    <local:Segmentbutton text="girl">
<local:Segment>
List<String> buttonTexts = new List<String>();
buttonTexts.Add ("B");
buttonTexts.Add ("G");

segment = new AXSegment (buttonTexts, 50, Color.FromHex ("#000000"), AppConstants.GlobalColor, Color.FromHex ("#EEEEEE"));
segment.buttonCallback = SexSegmentButtonChanged;
segment.SelectedIndex = 0;
List buttonexts=newlist();
按钮文本添加(“B”);
按钮文本添加(“G”);
段=新的AXSegment(buttonTexts,50,Color.FromHex(“#000000”)、AppConstants.GlobalColor,Color.FromHex(“#eeee”);
segment.buttonCallback=六段ButtonChanged;
segment.SelectedIndex=0;
在xaml中,我应该看哪些文档来完成它

我找了“BindableProperty”或很多东西,但还没找到。 我只想在

<local:Segmentbutton text="boy">

所以我只需生成按钮并将其添加到MySegment中的列表中


谢谢。

ContentPropertyAttribute
是关键字。您必须创建:

细分市场

这里没有什么特别的,只有一个
元素
和一个
文本
属性

公共类段:元素
{
公共静态只读BindableProperty TextProperty=BindableProperty.Create(p=>p.Text,string.Empty);
公共字符串文本
{
得到
{
返回(字符串)GetValue(TextProperty);
}
设置
{
设置值(TextProperty,value);
}
}
}
分段视图

继承自
视图
。属性
ContentProperty
告诉Xaml解释器/编译器将每个子节点填充到名为
Segments
的属性中

[ContentProperty(“段”)]
公共类分段视图:视图
{
私有只读IList_段=新列表();
公共部门
{
获取{返回_段;}
}
}
SegmentedViewRender

自定义渲染器继承自您选择的渲染器
Android.Views.View
是本机控件的类型。你必须改变它

公共类SegmentedViewRender:ViewRenderer
{
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
//段位于:this.Element.segments中
}
}
用法

<local:SegmentedView>
    <local:Segment Text="Bengal"></local:Segment>
    <local:Segment Text="Siam"></local:Segment>
    <local:Segment Text="Maine Coon"></local:Segment>
</local:SegmentedView>


。。非常感谢你。我想再问一个问题。在哪里可以检测到该段作为该数组的成员添加的时间?因为我想在其中添加一些代码。如果你想这样做,你必须使用
ObservableCollection
而不是
List
,然后你可以注册到
CollectionChanged
事件。哦,太好了。再次感谢。我一直在想,就像你说的,[ContentProperty(“Segments”)是关键。