创建要在整个Xamarin Forms App中使用的自定义视图

时间:2017-11-06 19:08:55

标签: c# xaml xamarin xamarin.forms

我希望在整个应用程序中创建一个自定义视图(标签和垂直堆栈中的条目)。要求是当条目没有文本时,上面的标签应该被隐藏,反之亦然。我尝试创建内容视图,但在使用xaml中的自定义控件时无法设置可见性。

CustomControl

using System;
using System.Collections.Generic;
using Xamarin.Forms;

namespace iTrans.CustomControls
{
    public partial class LabelEditor : ContentView
    {
        public LabelEditor()
        {
            InitializeComponent();
        }

        void Handle_TextChanged(object sender, Xamarin.Forms.TextChangedEventArgs e)
        {
            if (string.IsNullOrEmpty(entry.Text))
                label.IsVisible = false;
            else
                label.IsVisible = true;
        }
    }
}

的Xaml

<?xml version="1.0" encoding="UTF-8"?>
<ContentView xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="iTrans.CustomControls.LabelEditor">
    <ContentView.Content>
        <Label x:Name="label"></Label>
        <Entry x:Name="entry" TextChanged="Handle_TextChanged"/>
    </ContentView.Content>
</ContentView>

用法:

<custom:LabelEditor EditorText="hello" LabelText="bye"/>

1 个答案:

答案 0 :(得分:1)

您需要为自定义视图添加一些可绑定属性,一个用于编辑器文本,另一个用于标签文本。

This blog post会告诉你如何做到这一点。