【问题标题】:Create a simple UserControl创建一个简单的用户控件
【发布时间】:2014-04-09 05:37:28
【问题描述】:

我正在尝试创建一个简单的 Windows 应用商店应用程序。 我想在许多页面中重用一些“代码”。

例如,我需要在多个页面中重复使用这样的东西..

<StackPanel> 
   <TextBlock Text="Name"/>
   <TextBox x:Name="edtNome"/>

也许最好的方法是使用“UserControl”...但我不知道怎么做!

我已经创建了我的 MyUC.xaml

<UserControl
x:Class="Crud.View.MyUC"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Crud.View"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300"
d:DesignWidth="400">

<Grid>
   <StackPanel>
       <TextBlock Text="Name"/>
       <TextBox x:Name="edtName"/>
   </StackPanel>

但是现在呢? 我想把它放在我的 Page.xaml(和许多其他)中,并从 page.xaml 代码后面访问“edtName”.....

我要做什么?

【问题讨论】:

    标签: c# windows-store-apps winrt-xaml windows-store


    【解决方案1】:

    类似的东西

    在 xaml 中使用绑定路径。为您的控件添加一个 x:Name。 ElementName=me 'me' 将是您的控件的名称

    <TextBox x:Name="edtName" Text="{Binding Path=EditName, ElementName=me, Mode=Default}" ..../>
    

    在后面的代码中添加

    public string EditName
    {
        get { return (string)GetValue(EditNameTextProperty); }
        set { SetValue(EditNameTextProperty, value); }
    }
    
     public static readonly DependencyProperty EditNameTextProperty =
            DependencyProperty.Register("EditName",
                typeof(string),
                typeof(YourClassNameHereForThisControl),
                new FrameworkPropertyMetadata(""));
    

    【讨论】:

    • 好的,这只是我的 MyUC.xaml 和 MyUC.xaml.cs,现在我想将它包含在另一个页面中
    • 对不起,我听不懂。我如何在另一个页面中使用它?我必须做什么才能在 page1.xaml 中使用它?我必须在 page1.xaml 中写什么?如何从 page1.xaml.cs 访问 edtName?
    • 您需要在 XAML 中通过添加另一个 xmlns:UC="...." 来引用它,IntelliSense 应该可以帮助您填写它。指向 UserControl 的命名空间。 'UC' 可以是您想要引用控件的任何名称。然后将其添加到您的页面 XAML 中,例如
    • 完成...但不起作用,但我只能使用myuc.FindName("edtName") as a TextBox阅读...也许我必须在我的MyUC中修复一些东西...&lt;TextBox x:Name="edtName" Text="{Binding Path=EditName, ElementName=me, Mode=TwoWay}"我到底需要做什么在后面的代码中设置而不是new FrameworkPropertyMetadata(""))
    • 你能像现在一样发布你的 XAML 和代码吗?
    猜你喜欢
    • 1970-01-01
    • 2011-02-05
    • 2018-08-11
    • 2012-08-10
    • 1970-01-01
    • 2014-04-02
    • 1970-01-01
    • 2011-04-06
    • 2013-03-03
    相关资源
    最近更新 更多