Frage

Ich habe eine Reihe von dynamisch erstellten Gridviews, dass ich laden. Alles funktioniert gut, außer wenn die Zeilen Details erweitern ich einen Fehler „Can not unbekannte Art erstellen‚{clr-namespace: EMR.Controls.HPI} HPIDialogButton‘. Der Namespace EMR.Controls.HPI ist in der Ausführung der Montage und ich kann verwenden genau die gleiche XAML andere Orte, und es funktioniert ohne Probleme Wenn ich die Zeile aus kommentieren. ‚hpi: HPIDialogButton ...‘ erweitern sie dann die Zeile Details ohne Probleme

.

Es scheint an der Ladestelle, dass eine Verbindung fehlt, das für Sie erstellt wird, wenn Sie die Dinge direkt zu tun.

   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);
    }
War es hilfreich?

Lösung

Versuchen Montage in allen Ihren Xmlns angeben (Sie verpassen es in einem):

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top