簡體   English   中英

如何在另一個UserControl中綁定UserControl?

[英]How to bind UserControl inside another UserControl?

問題是下面的代碼應該將UserControl傳遞給Modal(也是UserControl )不起作用。 它看起來很簡單,我必須在這里遺漏一些小東西。

這是代碼

XAML:

<UserControl x:Class="Test.UserControls.Modal"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006">
<Grid>
    ....
    <ContentControl Content="{Binding PrimaryElement, ElementName=self}" />
</Grid>

<UserControl x:Class="Test.UserControls.SimpleUserControl"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006">
<Grid>
     <Label>Test</Label>
</Grid>
</UserControl>

C#:

namespace Test.UserControls
{

    public partial class Modal: UserControl
    {

        public static readonly DependencyProperty PrimaryElementPropery =
        DependencyProperty.Register("PrimaryElement", typeof(UserControl), typeof(Modal), new FrameworkPropertyMetadata
            {
                 BindsTwoWayByDefault = false
             });

        public UserControl PrimaryElement
        {
            get { return (UserControl)GetValue(PrimaryElementPropery); }
            set { SetValue(PrimaryElementPropery, value); }
        }

        public Modal (UserControl userControl)
        {
            // userControl is SimpleUserControl
            PrimaryElement = userControl;
            InitializeComponent();
        }
    }
}

結果,模態顯示但其中沒有SimpleUserControl 綁定有問題。

我解決了我的問題,這是愚蠢的。 SimpleUserControl中缺少寬度和高度。 元素顯示但沒有寬度和高度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM