SL - 解决ChildWindow作为xaml资源而无法实例化的问题

http://forums.silverlight.net/forums/p/117261/263924.aspx


建一个文件SerialRecorderUpdWinProxy.xaml,前端可以为空

此SerialRecorderUpdWinProxy.xaml.cs文件的代码如下

namespace SerialRecorder.Views
{
    public partial class SerialRecorderUpdWinProxy : UserControl
    {
        private string _ChildWindowControlType;
        private ChildWindow _Child;

        public object Child
        {
            get { return _Child; }
            set { _Child = (ChildWindow)value; }
        }

        public string ChildWindowControlType
        {
            get { return _ChildWindowControlType; }
            set
            {
                _ChildWindowControlType = value;
                _Child = (ChildWindow)Activator.CreateInstance(Type.GetType(_ChildWindowControlType));
            }
        }

        public SerialRecorderUpdWinProxy()
        {
            Visibility = Visibility.Collapsed;
        }

        public void Show()
        {
            //_Child.Width = Width;
            //_Child.Height = Height;
            _Child.Show();
        }
    }
}


在需要使用ChildWindow的页面中添加资源

<UserControl.Resources>
        <Views:SerialRecorderUpdWinProxy x:Key="SerialRecorderUpdWinProxy" ChildWindowControlType="SerialRecorder.Views.SerialRecorderUpdWin" />
    </UserControl.Resources>

 

<Button Content="新增" Height="23" Name="button2" Width="75" Margin="0,0,10,0" Command="{Binding ClickNewButton}" CommandParameter="{StaticResource SerialRecorderUpdWinProxy}" />


调用Show()方法

private DelegateCommand clickNewButton;

        public DelegateCommand ClickNewButton
        {
            get
            {
                if (clickNewButton == null)
                {
                    clickNewButton = new DelegateCommand((parameter) =>
                    {
                        parameter.GetType().GetMethod("Show").Invoke(parameter, null);
                    });
                }
                return clickNewButton;
            }
            set { clickNewButton = value; }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

icewizardry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值