在代码隐藏中设置控件的name属性会导致错误

本文关键字:属性 错误 name 隐藏 代码 设置 控件 | 更新日期: 2023-09-27 18:00:39

我当前的代码如下:

           MyControl pvc = new MyControl ( );
           pvc.SetValue(FrameworkElement.NameProperty, "Control_Name");
           try
           {
              Grid.SetColumn( pvc, c );
              Grid.SetRow( pvc, r );
              layoutRoot.Children.Add( pvc );
           }
           catch( Exception excep )
           {
              System.Windows.MessageBox.Show( excep.ToString( ) );
           }

我的问题是,我在尝试将控件添加到布局的行(layoutRoot.Children.add)上遇到了一个异常,只有当我尝试设置控件的nameproperty时才会发生此异常,如果我没有设置,它会正常工作。

异常是"系统"。ArgumentException:值不在预期范围内(…)

我真正想做的就是在codeehind中设置控件的Name属性,而不是XAML(使用x:Name="Name"0

编辑:完整的例外是:

系统。ArgumentException:值确实存在不在预期范围内。在MS.Internal.XcpImports.CheckHResult(UInt32小时)MS.Internal.XcpImports.Collection_Advalue[T](PresentationFrameworkCollection'1Collection,C值)MS.Internal.XcpImports.Collection_AddDependencyObject[T](PresentationFrameworkCollection'集合,DependencyObject值)系统Windows。PresentationFrameworkCollection'1.AddDependencyObject(DependencyObject值)位于系统Windows。控件。UIElementCollection。AddInternal(UIElement值)系统Windows。PresentationFrameworkCollection'1.Add(T值)控件。MyControl。CreateLayout()

在代码隐藏中设置控件的name属性会导致错误

事实证明,问题是我多次设置同一个名称,事后看来,这对我来说是一件相当愚蠢的事情。