【问题标题】:WPF Nested User ControlWPF 嵌套用户控件
【发布时间】:2013-08-06 04:04:42
【问题描述】:

我已经构建了一个 WPF 用户控件,其中包含一个带有自定义弹出窗口的 ComboBox,其中包含一个用户控件内部控件(弹出窗口中的那个)具有一些我想在主用户控件中公开的属性,因此主机page可以读写内部控件。

我在执行此操作时遇到问题是我做错了什么还是我做错了什么?

问候克里斯蒂安·安徒生

【问题讨论】:

  • 您的用户控件应该能够公开这些属性并将它们传递给内部控件...介意显示一些代码吗?
  • 你想公开什么类型的属性?您可以借助依赖属性。如果可以,请分享您的代码。
  • 您能详细说明您遇到的问题吗?如果您没有解释您的尝试是如何不起作用的,就很难提供帮助。

标签: wpf user-controls


【解决方案1】:

你可以尝试用这个来暴露它

public static IEnumerable<T> FindVisualChildren<T>(this DependencyObject depObj) where T : DependencyObject
        {
            if (depObj == null) yield break;
            for (var i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
            {
                var child = VisualTreeHelper.GetChild(depObj, i);
                var children = child as T;
                if (children != null)
                {
                    yield return children;
                }

                foreach (T childOfChild in FindVisualChildren<T>(child))
                {
                    yield return childOfChild;
                }
            }
        }

我如何使用它

var uc = (TabItem)sender;

            foreach (TextBlock textBlock in uc.FindVisualChildren<TextBlock>())
            {
                textBlock.Foreground = Brushes.WhiteSmoke;
            }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-28
    • 2015-09-22
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多