0

ロードする一連の動的に作成された GridView があります。行の詳細が展開されている場合を除いて、すべて正常に動作します「不明な型 '{clr-namespace:EMR.Controls.HPI}HPIDialogBu​​tton' を作成できません。名前空間 EMR.Controls.HPI は実行中のアセンブリにあり、使用できます」というエラーが表示されますまったく同じ XAML の他の場所で、問題なく動作します.行 'hpi:HPIDialogBu​​tton...' をコメントアウトすると、行の詳細が問題なく展開されます.

読み込みポイントでは、直接操作を行った場合に作成される接続が失われているようです。

   private RadGridView BuildSectionGrid()
    {
      //This is defined here until a better solution is found
      string XAML = @"
          <my:RadGridView IsReadOnly=""False"">
            <my:RadGridView.Columns>
                <telerik:GridViewToggleRowDetailsColumn />
                <telerik:GridViewDataColumn Header=""Selected"" DataMemberBinding=""{Binding IsSelected}"" IsReadOnly=""False""/>
                <telerik:GridViewDataColumn Header=""Definition"" DataMemberBinding=""{Binding Definition}"" IsReadOnly=""True""/>
            </my:RadGridView.Columns>

            <my:RadGridView.RowDetailsTemplate>
                <DataTemplate>
                    <DockPanel Margin=""10"">
                        <Label Content=""Progress Note:"" DockPanel.Dock=""Left""/>
                        <hpi:HPIDialogButton Margin=""5 0 0 0"" DockPanel.Dock=""Right"" HPIText=""{Binding ElementName=NoteItemTextBox, Path=Text, Mode=TwoWay}""/>
                        <TextBox Name=""NoteItemTextBox"" Margin=""5 0 0 0"" DockPanel.Dock=""Left"" AcceptsReturn=""True"" TextWrapping=""Wrap"" Height=""100"" Text=""{Binding ProgressNote}""/>
                    </DockPanel>
                </DataTemplate>
            </my:RadGridView.RowDetailsTemplate>
        </my:RadGridView>
";


      //Load the XAML in again
      ParserContext Context = new ParserContext();
      Context.XmlnsDictionary.Add("", "http://schemas.microsoft.com/winfx/2006/xaml/presentation");
      Context.XmlnsDictionary.Add("x", "http://schemas.microsoft.com/winfx/2006/xaml");
      Context.XmlnsDictionary.Add("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006");
      Context.XmlnsDictionary.Add("telerik", "http://schemas.telerik.com/2008/xaml/presentation");
      Context.XmlnsDictionary.Add("hpi", "clr-namespace:EMR.Controls.HPI");
      Context.XmlnsDictionary.Add("my", "clr-namespace:EMR.Shared.Controls.WPF;assembly=EMR.Shared.Controls.WPF");
      return (RadGridView)XamlReader.Parse(XAML, Context);
    }
4

1 に答える 1

3

すべてのxmlnsでアセンブリを指定してみてください(1つでそれを見逃しています):

Context.XmlnsDictionary.Add( "hpi"、 "clr-namespace:EMR.Controls.HPI; assembly = EMR.Controls.HPI");

于 2011-01-06T17:19:56.210 に答える