zoukankan      html  css  js  c++  java
  • WPF访问UserControl的自定义属性和事件

    要实现外部窗体能直接访问UserControl的属性必须把UserControl的属性定义为依赖属性:

    一,在UserControl.cs中为TextBox控件的Text建立依赖属性,输入"propdp"双击TAB都自动生成依赖属性模板,然后修改属性名称为SelectedValue:

            /// <summary>
            /// 依赖属性
            /// arg1:属性名称
            /// arg2:属性类型
            /// arg3:属性拥有者的类型
            /// arg4:属性值被改变时的回调函数
            /// </summary>
            public static readonly DependencyProperty SelectedValueProperty =
                DependencyProperty.Register("SelectedValue", typeof(string), typeof(CbxTreeRole), new PropertyMetadata("TextBox", new PropertyChangedCallback(OnTextChanged)));
    
            //回调函数
            static void OnTextChanged(object sender, DependencyPropertyChangedEventArgs args)
            {
                CbxTreeRole source = (CbxTreeRole)sender;
                source.txtValue.Text = (string)args.NewValue;
            }
    
            //封装依赖属性
            public string SelectedValue
            {
                get
                {
                    return (string)GetValue(SelectedValueProperty);
                }
                set
                {
                    txtValue.Text = value;
                    SetValue(SelectedValueProperty, value);
                }
            }

    二、在调用窗体MainWindow.xaml中绑定该依赖属性

    <uc:CbxTreeRole  Grid.Row="3" Grid.Column="1" Width="400" SelectedValue="{Binding Path=RoleName}" />

    同理,要访问UserControl事件,必须把UserControl事件定义为路由事件,向上冒泡,以便外部窗体可以处理。

  • 相关阅读:
    团队作业(三):确定分工
    团队作业(二):项目选题
    团队冲刺DAY3
    团队冲刺DAY4
    团队冲刺DAY6
    团队冲刺DAY1
    团队冲刺DAY5
    团队冲刺DAY7
    团队作业(四):描述设计
    【自学Spring Boot】什么是Spring Boot
  • 原文地址:https://www.cnblogs.com/kavilee/p/6626657.html
Copyright © 2011-2022 走看看