none
WPF - È stata generata un'eccezione durante l'impostazione di connectionId.' numero riga '7' e posizione riga '9'. RRS feed

  • Domanda

  • ciao a tutti.

    ho inserito in una mia soluzione un user control.nel file .xaml da un errore che non capisco.

    <Window x:Class="Gm.Moreno.Windows.Dettaglio1"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:wr="clr-namespace:Gm.Moreno.Windows"
            xmlns:gm="clr-namespace:GridButton;assembly=GridButton"
            mc:Ignorable="d"
            Title="Dettaglio1" Height="500" Width="500">

    ho solo effettuato l'aggiunta del riferimento al User control.

    che problema è ?

    i nomi dei Namespace sono corretti

    Grazie

    Moreno

    lunedì 6 febbraio 2017 15:40

Risposte

  • ok, la compilazione va a buon fine, ma i problemi possono generarsi per altri motivi in fasi successive, come ad esempio la mancanza di una dipendenza della dll tra quelle disponibili nel progetto.

    Per capirci:

    Poniamo che utilizzi che so Entity Framework nella libreria, poi importi la libreria in un progetto che non ha riferimenti ad EF, il tuo progetto darà problemi perché manca la dll di EF da cui dipende la tua libreria.

    E questo vale anche per altre librerie in generale, anche targate Microsoft stesso. Prova a copiare localmente eventuali dipendenze.


    • Modificato U 235Editor martedì 7 febbraio 2017 15:00
    • Contrassegnato come risposta Misonsan venerdì 10 febbraio 2017 16:36
    martedì 7 febbraio 2017 14:58
    Postatore

Tutte le risposte

  • Ciao,

    scusa ma c'è qualcosa che mi sfugge, l'errore parla di connectionId, sicuro sia il file giusto? hai quella variabile nel codice da qualche parte? se vai in visualizza dettagli hai altri dati sull'eccezione?

    Ciao

    Alessio

    lunedì 6 febbraio 2017 15:59
  • Un errore di questo tipo pare sia stato risolto qui:

    http://stackoverflow.com/questions/4615597/xamlparseexception-after-deploying-wpf-project

    lunedì 6 febbraio 2017 16:06
  • Ciao Alssio

    grazie per il link. Anche il precedente utente che ha affrontato un problema analogo parlava di "connectionId'

    che NON esiste nella mia applicazione. Questa form poi è una form chiamata dalla mainWindows nella quale viene fatta la connessione al DB ed effettuate alcune letture su tabelle senza problemi.

    Ho un user control che utilizzo

    <Window x:Class="Gm.Moreno.Windows.Dettaglio1"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:wr="clr-namespace:Gm.Moreno.Windows"
            xmlns:gm="clr-namespace:GridButton;assembly=GridButton"
            mc:Ignorable="d"
            Title="Dettaglio1" Height="500" Width="500">

    e lo referenzio con la riga evidenziata in bold e che da errore. 

    più sotto tra le righe contenute in <Grid> </grid> ho il riferimento al mio user control e precisamente

            <gm:UserControl1   VerticalAlignment="Bottom" HorizontalAlignment="Center" Grid.Row="1" btnConfermaClick="UserControl1_btnConfermaClick"  btnAnnullaClick="UserControl1_btnAnnullaClick"  btnDeleteClick="UserControl1_btnDeleteClick"  btnNuovoClick="UserControl1_btnNuovoClick" Margin="10,0,-160,102" Width="482" Grid.ColumnSpan="3" /> 
    

    se commento questa riga funziona, ovviamente senza user control.

    Guardando la segnalazione di errori vengono evidenziati due worning che fanno riferimento al controllo, ma non so il significato.

    te li riporto.

    può essere questo la causa del problema  ? e come si risolve ?

    Grazie

    Moreno

    lunedì 6 febbraio 2017 16:27
  • Ciao Moreno,

    Dando un occhiata al problema del tuo namespace senza neppure aprire una window, ma il GridButton sta in un assembly diverso da quello dove si trova la window oppure è nello stesso assembly?

    Se si trova nello stesso assembly il namespace va settato esattamente come quello della riga sopra, con il namespace in cui si trova lo User Control, se invece si trova su un assembly diverso, devi mappare correttamente l'assembly che devi avere agganciato come reference.

    se il tuo user control si trova su un progetto diverso che da origine ad un assembly che si chiama GridButton.dll allora il tuo namespace è corretto e dovrebbe funzionare, ma se così non è quello è il tuo problema.

    saluti


    Sabrina C. - http://www.dotnetwork.it

    lunedì 6 febbraio 2017 17:16
  • Ciao Sabrina

    Grazie per il tuo contributo.L'ser Control fa parte di un progetto separato rispetto alla soluzione sulla quale lo testo

    questo è il riferimento che seleziono

    questi i nomi dell'assembli e del Namespace del User Control

    mi sembrano coerenti.

    Non vedo cosa dover sistemare.

    Posso chiederti poi, se hai ricevuto le mie mail e se hai una programmazione per quell'eventuale verifica da fare sul MVVM ?

    Grazie

    Moreno

    lunedì 6 febbraio 2017 17:30
  • Il namespace dove si trova lo user control o il custom control che hai creato si chiama GridButton? il file che contiene il controllo si trova sulla root di progetto?

    Se si, la mia domanda primaria è, perché hai chiamato il namespace in tal modo, considerato che il namespace una riga sopra ha correttamente il prefisso Gm. che presumo sia il tuo "prefisso aziendale" come ricordo di aver spiegato in un articolo è opportuno fare per tutti i controlli delle nostre dll o dei nostri exe per evitare conflitti se per caso nel .net framework esistesse già un controllo chiamato GridButton.

    Se invece il Namespace dove si trova il tuo controllo Gridbutton si chiamasse Gm.GridButton, anche se contenuto nella dll GridButton.dll allora forse il problema è che devi dichiarare correttamente il namespace altrimenti XAML non trova nulla e si inquieta orribilmente...

    ;o)


    Sabrina C. - http://www.dotnetwork.it

    lunedì 6 febbraio 2017 17:46
  • Ciao Sabrina

    Mi sono accorto dell'errore di fondo che ho commesso nella creazione del progetto User Control.

    Ho provveduto a cambiare nome al Namespace, nella form proprietà del progetto, prefissandolo con gm.

    nel fil .xaml ho provveduto a completare la riga xmlns:wr="clr-namespace:Gm.GridButton;assembly=GridButton"

    con il riferimento aall'assembly.

    Ora da errore su InitializeComponent();

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    
    namespace Gm.GridButton
    {
        /// <summary>
        /// Logica di interazione per UserControl1.xaml
        /// </summary>
        public partial class UserControl1 : UserControl
        {
            public event RoutedEventHandler btnAnnullaClick;
            public event RoutedEventHandler btnNuovoClick;
            public event RoutedEventHandler btnConfermaClick;
            public event RoutedEventHandler btnDeleteClick;
    
            public UserControl1()
            {
                InitializeComponent();
            }
    
             public void btnAnnulla_Click(object sender, RoutedEventArgs e)
            {
                if (btnAnnullaClick != null)
                    btnAnnullaClick(this, e);
            }
    
            public void btnNuovo_Click(object sender, RoutedEventArgs e)
            {
                if (btnNuovoClick != null)
                    btnNuovoClick(this, e);
            }
    
            public void btnConferma_Click(object sender, RoutedEventArgs e)
            {
                if (btnConfermaClick != null)
                    btnConfermaClick(this, e);
            }
    
            public void btnDelete_Click(object sender, RoutedEventArgs e)
            {
                if (btnDeleteClick != null)
                    btnDeleteClick(this, e);
            }
        }
    }
    

    sugli eventi click da questo errore:

    Gravità	Codice	Descrizione	Progetto	File	Riga	Stato eliminazione
    Errore		'UserControl1' non contiene una definizione di 'btnAnnulla_Click' e non è stato trovato alcun metodo di estensione 'btnAnnulla_Click' che accetta un primo argomento di tipo 'UserControl1'. Probabilmente manca una direttiva using o un riferimento all'assembly.	GridButton	E:\WPF_Control\GmControl\GridButton\GridButton\UserControl1.xaml	32	
    

    Devo rifare lo User Control ?

    Grazie

    Moreno

    lunedì 6 febbraio 2017 18:21
  • ah... allora non avevi risolto...

    Credo che ti manchi una parte del discorso riguardo agli eventi allora...

    devi fare una cosa del genere per ogni evento che vuoi supportare nell'userControl:

    UserControl1.cs (esempio solo su NuovoClick):

    public partial class UserControl1 : UserControl { public static readonly RoutedEvent NuovoClickEvent = EventManager.RegisterRoutedEvent("NuovoClick", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(UserControl1));

    public event RoutedEventHandler NuovoClick { add { AddHandler(NuovoClickEvent, value); } remove { RemoveHandler(NuovoClickEvent, value); } } public UserControl1() { InitializeComponent(); } private void btnAnnulla_Click(object sender, RoutedEventArgs e) { } private void btnNuovo_Click(object sender, RoutedEventArgs e) {

    //chiamato dal click del bottone interno, "rigira" l'evento all'esterno del usercontrol RaiseEvent(new RoutedEventArgs(UserControl1.NuovoClickEvent)); } private void btnConferma_Click(object sender, RoutedEventArgs e) { } private void btnDelete_Click(object sender, RoutedEventArgs e) { } }

    UserControl1.xaml:

    <UserControl ...>
        <Grid>
                <Button Click="btnNuovo_Click"/>
        </Grid>
    </UserControl>

    Main (dove utilizzo l'userControl):

    <...:UserControl1 NuovoClick="UserControl1_NuovoClick" />
    Ora non ti rimane che applicarlo a tutti i tuoi eventi che vuoi esporre.


    lunedì 6 febbraio 2017 18:38
    Postatore
  • Grazie U235 per il tuo contributo

    ho fatto come mi hai detto e ti ripropongo il file UserControl1.xaml.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    
    namespace Gm.GridButton
    {
        /// <summary>
        /// Logica di interazione per UserControl1.xaml
        /// </summary>
        public partial class UserControl1 : UserControl
        {
            public static readonly RoutedEvent btnNuovoClickEvent =
               EventManager.RegisterRoutedEvent("btnNuovoClick", RoutingStrategy.Bubble,
               typeof(RoutedEventHandler), typeof(UserControl1));
    
            public static readonly RoutedEvent btnAnnullaClickEvent =
               EventManager.RegisterRoutedEvent("btnAnnullaClick", RoutingStrategy.Bubble,
               typeof(RoutedEventHandler), typeof(UserControl1));
    
            public static readonly RoutedEvent btnConfermaClickEvent =
               EventManager.RegisterRoutedEvent("btnConfermaClick", RoutingStrategy.Bubble,
               typeof(RoutedEventHandler), typeof(UserControl1));
    
            public static readonly RoutedEvent btnDeleteClickEvent =
                EventManager.RegisterRoutedEvent("btnDeleteClick", RoutingStrategy.Bubble,
                typeof(RoutedEventHandler), typeof(UserControl1));
    
            public event RoutedEventHandler btnAnnullaClick;
            public event RoutedEventHandler btnNuovoClick;
            public event RoutedEventHandler btnConfermaClick;
            public event RoutedEventHandler btnDeleteClick;
    
            public UserControl1()
            {
                InitializeComponent();   <---  Continua a dare errore su questa riga
            }
    
             public void btnAnnulla_Click(object sender, RoutedEventArgs e)
            {
                //chiamato dal click del bottone interno, "rigira" l'evento all'esterno del usercontrol
                RaiseEvent(new RoutedEventArgs(UserControl1.btnAnnullaClickEvent));
    
                //  if (btnAnnullaClick != null)
                //      btnAnnullaClick(this, e);
            }
    
            public void btnNuovo_Click(object sender, RoutedEventArgs e)
            {
                //chiamato dal click del bottone interno, "rigira" l'evento all'esterno del usercontrol
                RaiseEvent(new RoutedEventArgs(UserControl1.btnNuovoClickEvent));
              
               //  if (btnNuovoClick != null)
              //      btnNuovoClick(this, e);
            }
    
            public void btnConferma_Click(object sender, RoutedEventArgs e)
            {
                //chiamato dal click del bottone interno, "rigira" l'evento all'esterno del usercontrol
                RaiseEvent(new RoutedEventArgs(UserControl1.btnConfermaClickEvent));
    
                // if (btnConfermaClick != null)
                //     btnConfermaClick(this, e);
            }
    
            public void btnDelete_Click(object sender, RoutedEventArgs e)
            {
                //chiamato dal click del bottone interno, "rigira" l'evento all'esterno del usercontrol
                RaiseEvent(new RoutedEventArgs(UserControl1.btnDeleteClickEvent));
    
              //  if (btnDeleteClick != null)     queste righe non servono più ?
              //      btnDeleteClick(this, e);
            }
        }
    }

    sul file Dettaglio1.xaml ho riimpostato gli eventi come indicato

    <Window x:Class="Gm.Moreno.Windows.Dettaglio1"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:wr="clr-namespace:Gm.Moreno.Windows"
            xmlns:gm="clr-namespace:Gm.GridButton;assembly=GridButton"
            mc:Ignorable="d"
            Title="Dettaglio1" Height="500" Width="533">
        <Grid Margin="0,0,0,60">
            <Grid.RowDefinitions>
                <RowDefinition Height="295"/>
                <RowDefinition Height="205"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="80" />
                <ColumnDefinition Width="20" />
                <ColumnDefinition Width="220" />
            </Grid.ColumnDefinitions>
            <TextBlock x:Name="txtBlockMatricola" HorizontalAlignment="Left" Height="17" Margin="10,17,0,0" TextWrapping="Wrap" Text="Matricola" VerticalAlignment="Top" Width="61"/>
            <TextBlock x:Name="txtBlockCognome" HorizontalAlignment="Left" Height="15" Margin="10,39,0,0" TextWrapping="Wrap" Text="Cognome" VerticalAlignment="Top" Width="63"/>
            <TextBlock x:Name="txtBlockNome" HorizontalAlignment="Left" Height="15" Margin="10,59,0,0" TextWrapping="Wrap" Text="Nome" VerticalAlignment="Top" Width="63"/>
            <TextBlock x:Name="txtBlockUserId" HorizontalAlignment="Left" Height="17" Margin="10,79,0,0" TextWrapping="Wrap" Text="UserId" VerticalAlignment="Top" Width="63"/>
            <TextBlock x:Name="txtBlockPassword" HorizontalAlignment="Left" Height="15" Margin="10,107,0,0" TextWrapping="Wrap" Text="Password" VerticalAlignment="Top" Width="61"/>
            <TextBlock x:Name="txtBlockTitolo" HorizontalAlignment="Left" Height="17" Margin="10,135,0,0" TextWrapping="Wrap" Text="Titolo" VerticalAlignment="Top" Width="61"/>
            <TextBlock x:Name="txtBlockLivello" HorizontalAlignment="Left" Height="17" Margin="10,157,0,0" TextWrapping="Wrap" Text="Livello" VerticalAlignment="Top" Width="61"/>
            <TextBlock x:Name="txtBlockStato" HorizontalAlignment="Left" Height="17" Margin="10,179,0,0" TextWrapping="Wrap" Text="Stato" VerticalAlignment="Top" Width="61"/>
            <TextBlock x:Name="txtBlockNote" HorizontalAlignment="Left" Height="17" Margin="10,201,0,0" TextWrapping="Wrap" Text="Note" VerticalAlignment="Top" Width="61"/>
            <TextBox x:Name="txtMatricola" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="0,17,0,0" TextWrapping="Wrap" Text="Matricola" VerticalAlignment="Top" Width="54"/>
            <Button x:Name="btnRicerca_0" Content="Ricerca" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="68,17,0,0" VerticalAlignment="Top" Width="52" />
            <TextBox x:Name="txtCognome" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="0,39,0,0" TextWrapping="Wrap" Text="Cognome" VerticalAlignment="Top" Width="182"/>
            <TextBox x:Name="txtNome" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="0,60,0,0" TextWrapping="Wrap" Text="Nome" VerticalAlignment="Top" Width="182"/>
            <TextBox x:Name="txtUserId" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="0,82,0,0" TextWrapping="Wrap" Text="UserId" VerticalAlignment="Top" Width="54"/>
            <PasswordBox x:Name="passwordBox" Grid.Column="2" HorizontalAlignment="Left" Height="15" Margin="0,107,0,0" VerticalAlignment="Top" Width="83" MaxLength="10"/>
            <TextBox x:Name="txtTitolo" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="0,135,0,0" TextWrapping="Wrap" Text="Tit" VerticalAlignment="Top" Width="54"/>
            <TextBox x:Name="txtok" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="211,17,-64,0" TextWrapping="Wrap" Text="K0" VerticalAlignment="Top" Width="54"/>
            <Button x:Name="btnRicerca_1" Content="Ricerca" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="68,137,0,0" VerticalAlignment="Top" Width="52" />
            <TextBox x:Name="txt1" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="217,138,-70,0" TextWrapping="Wrap" Text="K1" VerticalAlignment="Top" Width="54"/>
            <TextBox x:Name="txtLivello" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="0,160,0,0" TextWrapping="Wrap" Text="Level" VerticalAlignment="Top" Width="54"/>
            <Button x:Name="btnRicerca_2" Content="Ricerca" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="68,160,0,0" VerticalAlignment="Top" Width="52" />
            <TextBox x:Name="txt2" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="217,160,-70,0" TextWrapping="Wrap" Text="K2" VerticalAlignment="Top" Width="54"/>
            <TextBox x:Name="txtStato" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="0,182,0,0" TextWrapping="Wrap" Text="Stato" VerticalAlignment="Top" Width="54" RenderTransformOrigin="0.601,2.108"/>
            <Button x:Name="btnRicerca_3" Content="Ricerca" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="68,181,0,0" VerticalAlignment="Top" Width="52" />
            <TextBox x:Name="txt3" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="217,182,-70,0" TextWrapping="Wrap" Text="K3" VerticalAlignment="Top" Width="54"/>
            <TextBox x:Name="txtNote" Grid.Column="2" HorizontalAlignment="Left" Height="74" Margin="0,204,-8,0" TextWrapping="Wrap" Text="Note" VerticalAlignment="Top" Width="209" RenderTransformOrigin="0.601,2.108" AcceptsReturn="True"/>
            <gm:UserControl1 VerticalAlignment="Bottom" HorizontalAlignment="Center" Height="74" Grid.Row="1" btnAnnullaClick="UserControl1_btnAnnullaClick" btnConfermaClick="UserControl1_btnConfermaClick" btnDeleteClick="UserControl1_btnDeleteClick" btnNuovoClick="UserControl1_btnNuovoClick" Margin="35,0,-160,102" Width="510" Grid.ColumnSpan="3" />
        </Grid>
    </Window>

    se faccio la compilazione soluzione passa, quando avvia la soluzione, esegue prima la login che è ma MainWindow, poi viene chiamata la Dettaglio1che va in errore

    Sulla lista degli errori viene evidenziato il seguente errore

    sembra manchi l'icona btn_032_761.png che nella cartella images esiste invece

    Che posssa essere questo file che provoca il crash ?

    Domanda finale

    le istruzioni

             //  if (btnDeleteClick != null)     queste righe non servono più ?
              //      btnDeleteClick(this, e);

    presenti nell'evento click del controllo non servono più ?

    Cosa facevano ?

    Grazie

    Moreno

    -------------------------------  Integrazione

    Ho cancellato l'icona sulla quale dava errore e ho poi provato a ricaricarla; mancava effettivamente dentro la cartella images. L'ho inserita e ricaricata, ricompilata la soluzione e purtroppo continua ad andare in errore e precisamente:

    Non so più cosa possa essere.

    grazie  ancora

    Moreno

    • Modificato Misonsan lunedì 6 febbraio 2017 21:17 Integrazione
    lunedì 6 febbraio 2017 21:06
  • Se ti da errore sull'immagine, vuol dire che non hai correttamente impostato la URI dell'immagine stessa dove la utilizzi.

    le righe commentate sinceramente non so cosa siano e chi le abbia scritte, ma non hanno molto senso...


    Sabrina C. - http://www.dotnetwork.it

    martedì 7 febbraio 2017 10:04
  • Ciao Sabrina

    Il problema dell'immagine èsuperato; mancava effettivamente il file nella cartella images.

    Cercando di superare il problema e, pensando fosse un problema legato ad una mia non corretta creazione del controllo, ho voluto rifare il controllo per poter tentare di capire se il problema era generato li.

    Il nuovo controllo è stato generato senza errori. Ho quindi provvedutoa inserire il riferimento nella soluzione che deve utilizzarlo e ho insrito il controllo nella form che lo usa.

    Riporto i file xaml del controllo e della form che lo usa

    <UserControl x:Class="GmControl.UserControl1"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
                 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
                 xmlns:local="clr-namespace:GmControl"
                 mc:Ignorable="d" 
                 d:DesignHeight="95" d:DesignWidth="350">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="27"/>
                <RowDefinition Height="41"/>
                <RowDefinition Height="27"/>
            </Grid.RowDefinitions>
            <DockPanel Grid.Row="0">
                <StatusBar  Height="20" Grid.ColumnSpan="1" HorizontalAlignment="Left" Name="statusBar1" VerticalAlignment="Top" Width="350" Background="AntiqueWhite" Margin="0,5,0,-10">
                    <TextBlock >Funz:</TextBlock>
                    <TextBlock x:Name="Funzione" Text="{Binding Path=CFunzione}"></TextBlock>
                    <Separator/>
                    <TextBlock x:Name="Utente" Text="{Binding Path=AnagraficaUtente,NotifyOnSourceUpdated=True, Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"></TextBlock>
                    <Separator/>
                    <TextBlock >Profilo:</TextBlock>
                    <TextBlock x:Name="Profilo" Text="{Binding Path=CProfilo}"></TextBlock>
                </StatusBar>
            </DockPanel>
            <DockPanel Grid.Row="2">
                <StatusBar  Height="20" Grid.ColumnSpan="1" HorizontalAlignment="Left" Name="statusBar2" VerticalAlignment="Top" Width="350" Background="Aquamarine" Margin="0,5,0,-10">
                    <TextBlock x:Name="RigaMessaggio" Text="{Binding Path=CMessaggio}"></TextBlock>
                    <Separator/>
                    <TextBlock x:Name="DataOdierna" Text="{Binding Path=DataDelGiorno,NotifyOnSourceUpdated=True, Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"></TextBlock>
                    <Separator/>
                    <TextBlock > </TextBlock>
                    <TextBlock x:Name="Ora" Text="{Binding Path=OraAttuale}"></TextBlock>
                </StatusBar>
            </DockPanel>
            <StackPanel
                Orientation="Horizontal"
                HorizontalAlignment="Center"
                FlowDirection="RightToLeft"
                 VerticalAlignment="Center"
                Margin="2,5,2,5" Grid.ColumnSpan="2" Grid.Row="1">
    
                <Button
                    Name="btnAnnulla"
                    Margin="4,2,4,2"
                    Padding="8,4,8,4"
                    Click="btnAnnulla_Click"
                    ToolTip="Annulla Operazione">
                    <TextBlock 
                        Margin="4,2,4,2"
                        HorizontalAlignment="Left"
                        VerticalAlignment="Center"
                        Text="Annulla"></TextBlock>
                </Button>
                <Button
                    Name="btnNuovo"
                    Margin="4,2,4,2"
                    Padding="8,4,8,4"
                    Click="btnNuovo_Click"
                    ToolTip="Inserisce nuovo Record nel Database">
                    <TextBlock 
                        Margin="4,2,4,2"
                        HorizontalAlignment="Left"
                        VerticalAlignment="Center"
                        Text="Nuovo"
                        Foreground="Blue"/>
    
                </Button>
                <Button
                    Name="btnConferma"
                    Margin="4,2,4,2"
                    Padding="8,4,8,4"
                    Click="btnConferma_Click"
                    ToolTip="Aggiorna il Record nel DataBase">
                    <TextBlock 
                        Margin="4,2,4,2"
                        HorizontalAlignment="Left"
                        VerticalAlignment="Center"
                        Text="Conferma"/>
                </Button>
                <Button
                    Name="btnDelete"
                    Margin="4,2,4,2"
                    Padding="8,4,8,4"
                    Click="btnDelete_Click"
                    ToolTip="Cancella il Record nel DataBase">
                    <TextBlock 
                        Margin="4,2,4,2"
                        HorizontalAlignment="Left"
                        VerticalAlignment="Center"
                        Text="Cancella" Foreground="red"/>
                </Button>
     
            </StackPanel>
        </Grid>
    

    questa è lo screenshot del controllo

    il controllo contiene:

    Una StatusBar superiore che dovrebbe visualizzare la funzione in essere, l'Anagrafica dell'utente Loggato e il suo profilo

    Nella parte centrale i bottoni di servizio (cancella, Conferma, Annulla e Nuovo)

    Nel piede una nuova Statusbar per visualizzare l'eventuale messaggio la data e l'ora.

    <Window x:Class="Gm.Moreno.Windows.Dettaglio1"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:wr="clr-namespace:Gm.Moreno.Windows"
            xmlns:gm="clr-namespace:GmControl;assembly=MyGmControl"  <-- Nuovo Controllo 
            mc:Ignorable="d"
            Title="Dettaglio1" Height="500" Width="533">
    
        <Grid Margin="0,0,0,60">
            <Grid.RowDefinitions>
                <RowDefinition Height="295"/>
                <RowDefinition Height="205"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="80" />
                <ColumnDefinition Width="20" />
                <ColumnDefinition Width="220" />
            </Grid.ColumnDefinitions>
            <TextBlock x:Name="txtBlockMatricola" HorizontalAlignment="Left" Height="17" Margin="10,17,0,0" TextWrapping="Wrap" Text="Matricola" VerticalAlignment="Top" Width="61"/>
            <TextBlock x:Name="txtBlockCognome" HorizontalAlignment="Left" Height="15" Margin="10,39,0,0" TextWrapping="Wrap" Text="Cognome" VerticalAlignment="Top" Width="63"/>
            <TextBlock x:Name="txtBlockNome" HorizontalAlignment="Left" Height="15" Margin="10,59,0,0" TextWrapping="Wrap" Text="Nome" VerticalAlignment="Top" Width="63"/>
            <TextBlock x:Name="txtBlockUserId" HorizontalAlignment="Left" Height="17" Margin="10,79,0,0" TextWrapping="Wrap" Text="UserId" VerticalAlignment="Top" Width="63"/>
            <TextBlock x:Name="txtBlockPassword" HorizontalAlignment="Left" Height="15" Margin="10,107,0,0" TextWrapping="Wrap" Text="Password" VerticalAlignment="Top" Width="61"/>
            <TextBlock x:Name="txtBlockTitolo" HorizontalAlignment="Left" Height="17" Margin="10,135,0,0" TextWrapping="Wrap" Text="Titolo" VerticalAlignment="Top" Width="61"/>
            <TextBlock x:Name="txtBlockLivello" HorizontalAlignment="Left" Height="17" Margin="10,157,0,0" TextWrapping="Wrap" Text="Livello" VerticalAlignment="Top" Width="61"/>
            <TextBlock x:Name="txtBlockStato" HorizontalAlignment="Left" Height="17" Margin="10,179,0,0" TextWrapping="Wrap" Text="Stato" VerticalAlignment="Top" Width="61"/>
            <TextBlock x:Name="txtBlockNote" HorizontalAlignment="Left" Height="17" Margin="10,201,0,0" TextWrapping="Wrap" Text="Note" VerticalAlignment="Top" Width="61"/>
            <TextBox x:Name="txtMatricola" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="0,17,0,0" TextWrapping="Wrap" Text="Matricola" VerticalAlignment="Top" Width="54"/>
            <Button x:Name="btnRicerca_0" Content="Ricerca" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="68,17,0,0" VerticalAlignment="Top" Width="52" />
            <TextBox x:Name="txtCognome" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="0,39,0,0" TextWrapping="Wrap" Text="Cognome" VerticalAlignment="Top" Width="182"/>
            <TextBox x:Name="txtNome" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="0,60,0,0" TextWrapping="Wrap" Text="Nome" VerticalAlignment="Top" Width="182"/>
            <TextBox x:Name="txtUserId" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="0,82,0,0" TextWrapping="Wrap" Text="UserId" VerticalAlignment="Top" Width="54"/>
            <PasswordBox x:Name="passwordBox" Grid.Column="2" HorizontalAlignment="Left" Height="15" Margin="0,107,0,0" VerticalAlignment="Top" Width="83" MaxLength="10"/>
            <TextBox x:Name="txtTitolo" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="0,135,0,0" TextWrapping="Wrap" Text="Tit" VerticalAlignment="Top" Width="54"/>
            <TextBox x:Name="txtok" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="211,17,-64,0" TextWrapping="Wrap" Text="K0" VerticalAlignment="Top" Width="54"/>
            <Button x:Name="btnRicerca_1" Content="Ricerca" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="68,137,0,0" VerticalAlignment="Top" Width="52" />
            <TextBox x:Name="txt1" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="217,138,-70,0" TextWrapping="Wrap" Text="K1" VerticalAlignment="Top" Width="54"/>
            <TextBox x:Name="txtLivello" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="0,160,0,0" TextWrapping="Wrap" Text="Level" VerticalAlignment="Top" Width="54"/>
            <Button x:Name="btnRicerca_2" Content="Ricerca" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="68,160,0,0" VerticalAlignment="Top" Width="52" />
            <TextBox x:Name="txt2" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="217,160,-70,0" TextWrapping="Wrap" Text="K2" VerticalAlignment="Top" Width="54"/>
            <TextBox x:Name="txtStato" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="0,182,0,0" TextWrapping="Wrap" Text="Stato" VerticalAlignment="Top" Width="54" RenderTransformOrigin="0.601,2.108"/>
            <Button x:Name="btnRicerca_3" Content="Ricerca" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="68,181,0,0" VerticalAlignment="Top" Width="52" />
            <TextBox x:Name="txt3" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="217,182,-70,0" TextWrapping="Wrap" Text="K3" VerticalAlignment="Top" Width="54"/>
            <TextBox x:Name="txtNote" Grid.Column="2" HorizontalAlignment="Left" Height="74" Margin="0,204,-8,0" TextWrapping="Wrap" Text="Note" VerticalAlignment="Top" Width="209" RenderTransformOrigin="0.601,2.108" AcceptsReturn="True"/>
            <gm:UserControl1 VerticalAlignment="Bottom" HorizontalAlignment="Center" Height="95" Grid.Row="1" btnAnnullaClick="UserControl1_btnAnnullaClick" btnConfermaClick="UserControl1_btnConfermaClick" btnDeleteClick="UserControl1_btnDeleteClick" btnNuovoClick="UserControl1_btnNuovoClick" Margin="35,0,-160,102" Width="510" Grid.ColumnSpan="3" />
        </Grid>
    </Window>
    

    xaml del file Dettaglio1 che deve utilizzare il controllo

    Screenshot della form Dettaglio1 che deve utilizare il controllo

    Sono nello sconforto massimo, perchè non capisco cosa manchi.

    Grazie a chi può darmi una mano.

    ciao

    Moreno

    martedì 7 febbraio 2017 11:18
  • Ciao,

    in generale, ed in particolare quando lavori con librerie "esterne" (anche se fatte da te ma incluse esternamente), dovresti fare tuo il consiglio che ti ha dato BlueLed in altra occasione: pulisci e ricompila il tutto (seguendo le priorità) e nel caso "cancella le tracce" della precedente compilazione.

    Se ancora non va isola il problema. Come? "svuota" di tutto la dll che stai includendo, in modo che localizzi se si tratta di un problema di "inclusione" o di runtime della libreria.

    ancora non va? prova ad usare la libreria in altro progetto... ecc. 

    EDIT:

    Per "priorità" intendo dire che se ad esempio stai includendo una libreria in un altra libreria che a sua volta verrà inclusa in un progetto, allora è chiaro che devi prima compilare la prima che poi verrà inclusa correttamente nella seconda, che a questo punto avrà inclusa la NUOVA (prima) libreria. In genere questo lavoro lo fa visual studio, ma sai... meglio accertarsi.

    • Modificato U 235Editor martedì 7 febbraio 2017 13:27
    martedì 7 febbraio 2017 13:17
    Postatore
  • Quando ti mostra l'eccezione premi "visualizza dettagli" e controlla se c'è una InnerException e cosa dice.
    martedì 7 febbraio 2017 13:54
  • Ciao a tutti

    Al ripetersi dell'errore "'È stata generata un'eccezione durante l'impostazione di connectionId.' numero riga '7' e posizione riga '9'" ho voluto ripartire da zero, creando un progetto
    dove nella MainWindow avevo un bottone che faceva aprire la form chiamata.

    La form Chiamata aveva i controlli senza la User Control.
    Appena fatto ho provato e la form di dettaglio viene aperta regolarmente

    ho aggiunto il riferimento alla User Control, modificata la dettaglio.xaml con l'inserimento dello User Control.

    Ricompilata la soluzione senza nessun errore.
    quando lancio l'applicazione, la MainWindows funziona, quando clicco sul bottone per l'apertura della form Chiamata Dettaglio1 va in ctrrack con l'errore classico.
    Quindi il probema sta nello User Control.
    Se la compilazione funziona, cosa manca per fare andare in crash l'applicazione?

    Cliccando su "Visualizza Dettagli"  compare il messaggio più volte riportato e precisamente

    "È stata generata un'eccezione durante l'impostazione di connectionId.' numero riga '7' e posizione riga '9'."

    in risposta a U235

    nella mia soluzione ho solo da linkare la dll dell'usr control.

    La compilazione del User Control non da nessun errore.

    Operativamente devo cancellare la dll da debug, ricompilare e riaggiungere il riferimento ?

    Credo di averlo già fatto diverse volte, ma se mi date una sequenza operativa lo rifaccio.

    Quello che mi spiazza è che la compilazione non da nesusn problemae quindi mi aspetto che la dll sia sta generata correttamente.

    Grazie

    Moreno

    martedì 7 febbraio 2017 14:44
  • ok, la compilazione va a buon fine, ma i problemi possono generarsi per altri motivi in fasi successive, come ad esempio la mancanza di una dipendenza della dll tra quelle disponibili nel progetto.

    Per capirci:

    Poniamo che utilizzi che so Entity Framework nella libreria, poi importi la libreria in un progetto che non ha riferimenti ad EF, il tuo progetto darà problemi perché manca la dll di EF da cui dipende la tua libreria.

    E questo vale anche per altre librerie in generale, anche targate Microsoft stesso. Prova a copiare localmente eventuali dipendenze.


    • Modificato U 235Editor martedì 7 febbraio 2017 15:00
    • Contrassegnato come risposta Misonsan venerdì 10 febbraio 2017 16:36
    martedì 7 febbraio 2017 14:58
    Postatore
  • Cliccando su "Visualizza Dettagli"  compare il messaggio più volte riportato e precisamente

    "È stata generata un'eccezione durante l'impostazione di connectionId.' numero riga '7' e posizione riga '9'."

    ...

    Grazie


    Moreno

    Una volta cliccato "visualizza dettagli" trovi un "+". Se lo premi vedrai i "dettagli". Tra questi ci dovrebbe essere una InnerException. Se questa non è vuota, cosa dice ?

    martedì 7 febbraio 2017 15:12
  • Ciao U235

    la diagnosi che fai è molto chiara e logica; nel mio caso specifico il conttrollo mi sembra talmente banale e privo di cose strane che direi di non rientrare nel caso ceh hai diagnosticato.

    ti giro il file .xaml per una veloce scansione

    <UserControl x:Class="Gm.GridButton.UserControl1"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
                 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
                 xmlns:wr="clr-namespace:Gm.GridButton;assembly=GridButton"
                 mc:Ignorable="d" 
                 d:DesignHeight="110" d:DesignWidth="510">
        <Grid x:Name="LayoutRoot" Height="90" Width="505
              ">
            <Grid.RowDefinitions>
                <RowDefinition Height="18*"/>
                <RowDefinition Height="65*"/>
                <RowDefinition Height="18*"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <StatusBar Name="StHeader" Background="AliceBlue" BorderBrush="Yellow" Grid.Row="0" Height="14
                       " />
            <StackPanel
                Orientation="Horizontal"
                FlowDirection="RightToLeft"
                 VerticalAlignment="Center"
                Margin="2,10,7,10" Grid.ColumnSpan="2" Grid.Row="1">
    
                <Button
                    Name="btnAnnulla"
                    Margin="4,2,4,2"
                    Padding="8,4,8,4"
                    Click="btnAnnulla_Click"
                    ToolTip="Annulla Operazione">
                    <TextBlock 
                        Margin="4,2,4,2"
                        HorizontalAlignment="Left"
                        VerticalAlignment="Center"
                        Text="Annulla"></TextBlock>
                </Button>
                <Button
                    Name="btnNuovo"
                    Margin="4,2,4,2"
                    Padding="8,4,8,4"
                    Click="btnNuovo_Click"
                    ToolTip="Inserisce nuovo Record nel Database">
                    <TextBlock 
                        Margin="4,2,4,2"
                        HorizontalAlignment="Left"
                        VerticalAlignment="Center"
                        Text="Nuovo"
                        Foreground="Blue"/>
    
                </Button>
                <Button
                    Name="btnConferma"
                    Margin="4,2,4,2"
                    Padding="8,4,8,4"
                    Click="btnConferma_Click"
                    ToolTip="Aggiorna il Record nel DataBase">
                    <TextBlock 
                        Margin="4,2,4,2"
                        HorizontalAlignment="Left"
                        VerticalAlignment="Center"
                        Text="Conferma"/>
                </Button>
                <Button
                    Name="btnDelete"
                    Margin="4,2,4,2"
                    Padding="8,4,8,4"
                    Click="btnDelete_Click"
                    ToolTip="Cancella il Record nel DataBase">
                    <TextBlock 
                        Margin="4,2,4,2"
                        HorizontalAlignment="Left"
                        VerticalAlignment="Center"
                        Text="Cancella" Foreground="red"/>
                </Button>
                <Label x:Name="lblFunction" Content="lbl x Funzione" HorizontalAlignment="Left" Height="25" Margin="0,9,0,3" VerticalAlignment="Center" Width="106" FontWeight="Bold" RenderTransformOrigin="0.906,0.267" />
                <TextBlock
                	Margin="28,5,5,5"
                	HorizontalAlignment="Right"
                	VerticalAlignment="Bottom"
                	Text="Funzione: " Width="48"
                	Background="Beige"/>
            </StackPanel>
        </Grid>
    </UserControl>
    

    ci sono solo gli eventi e sono regolarmente creati nel Code Behind

    ciao

    Moreno

    martedì 7 febbraio 2017 15:17
  • ok.

    domanda: ma non avevi cambiato nome alla dll? 

    clr-namespace:Gm.GridButton;assembly=GridButton

    inoltre quando importi la libreria del controllo, sei certo ci sia anche la libreria GridButton?

    martedì 7 febbraio 2017 15:27
    Postatore
  • sono solito differenziare il nome dell'Assembli da quello del Namespace, prefissandolo con Gm.

    Pe r errore avevo lasciato gli stessi nomi e quindi, ho provveduto a correggere.

    sul file .xaml quando referenzio il nuovo xmlns, me lo faccio restituire davisual studio, infatti metto

    xmlns= e lui mi propone l'elenco; in questo caso scegliendo GridButton me la compila come vedi.

    martedì 7 febbraio 2017 15:33
  • Ti passo una semplice soluzione funzionante che contiene una libreria con il tuo userControl (come postato da te per ultimo), e un progetto che ne fa uso. Questo potrebbe servirti per scovare le differenze.

    Qui puoi scaricare la soluzione

    martedì 7 febbraio 2017 16:01
    Postatore
  • Grazie

    Ho scaricato il file .zip

    Ho creato iìuna cartella dezippato, ma lanciandolo da un errore e non apre tutti gli oggetti.

    quindi da errore in cascata e non posso verificare nulla.

    Ciao

    Moreno

    martedì 7 febbraio 2017 16:16
  • Ti chiedo scusa, ho dimenticato di mettere la cartella del progetto libreria.

    Qui il file corretto.

    martedì 7 febbraio 2017 16:41
    Postatore
  • Grazie per il file corretto.

    Sto guardando i due mainWindow.xaml

    tuo

    <Window xmlns:WpfControlLibrary1="clr-namespace:WpfControlLibrary1;assembly=MioAssembly" 
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:WpfApplication1"
            x:Class="WpfApplication1.MainWindow"
            mc:Ignorable="d"
            Title="MainWindow" Height="350" Width="856.522">
        <Grid>
            <WpfControlLibrary1:UserControl1 NuovoClick="UserControl1_NuovoClick" />
        </Grid>
    </Window>
    

    mio

    <Window x:Class="Gm.Moreno.Windows.Dettaglio1"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:wr="clr-namespace:Gm.Moreno.Windows"
            xmlns:gm="clr-namespace:Gm.GridButton;assembly=GridButton"
            mc:Ignorable="d"
            Title="Dettaglio1" Height="500" Width="533">
        <!-- Precedente controllo xmlns:gm="clr-namespace:Gm.GridButton;assembly=GridButton" -->
        <Grid Margin="0,0,0,60">
            <gm:UserControl1 VerticalAlignment="Bottom" HorizontalAlignment="Center" Height="95" Grid.Row="1" btnAnnullaClick="UserControl1_btnAnnullaClick" btnConfermaClick="UserControl1_btnConfermaClick" btnDeleteClick="UserControl1_btnDeleteClick" btnNuovoClick="UserControl1_btnNuovoClick" Margin="35,0,-160,102" Width="510" Grid.ColumnSpan="3" />
        </Grid>
    </Window>
    

    Mi sembrano assolutamente speculari.

    Io ho la differenza di avere le form dentro alla cartella Windows.

    Tu trovi differenze ?

    martedì 7 febbraio 2017 17:28
  • aspetta... che il problema non sia il progetto che include la libreria lo sappiamo... o perlomeno era prevedibile. Dovresti confrontare l'user control. inoltre dovresti provare ad includere il mio usercontrol come hai fatto con l'altro. 

    Ma ho il dubbio che non stia usando il controllo con solo gli eventi, ma che abbia messo anche della logica, e magari questa va in errore a causa di dipendenze mancanti o chissà cosa...

    Parti dalla base, poi ma mano aggiungi il resto e provi.

    martedì 7 febbraio 2017 20:34
    Postatore
  • Buona Giornata U235

    Grazie per rimanermi al fianco.

    Ho cercato di ragionare su come è sviluppato il controllo.

    NON contiene nessun altro link a oggetti diversi

    il file .xaml ha solo il namespace del progetto

    <UserControl x:Class="GmControl.UserControl1"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
                 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
                 xmlns:local="clr-namespace:GmControl;assembly=MyGmControl"
                 mc:Ignorable="d" 
                 d:DesignHeight="95" d:DesignWidth="350">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="27"/>
                <RowDefinition Height="41"/>
                <RowDefinition Height="27"/>
            </Grid.RowDefinitions>
            <DockPanel Grid.Row="0">
                <StatusBar  Height="20" Grid.ColumnSpan="1" HorizontalAlignment="Left" Name="statusBar1" VerticalAlignment="Top" Width="350" Background="AntiqueWhite" Margin="0,5,0,-10">
                    <TextBlock >Funz:</TextBlock>
                    <TextBlock x:Name="Funzione" Text=""></TextBlock>
                    <Separator/>
                    <TextBlock x:Name="Utente" Text=""></TextBlock>
                    <Separator/>
                    <TextBlock >Profilo:</TextBlock>
                    <TextBlock x:Name="Profilo" Text=""></TextBlock>
                </StatusBar>
            </DockPanel>
            <DockPanel Grid.Row="2">
                <StatusBar  Height="20" Grid.ColumnSpan="1" HorizontalAlignment="Left" Name="statusBar2" VerticalAlignment="Top" Width="350" Background="Aquamarine" Margin="0,5,0,-10">
                    <TextBlock x:Name="RigaMessaggio" Text=""></TextBlock>
                    <Separator/>
                    <TextBlock x:Name="DataOdierna" Text=""></TextBlock>
                    <Separator/>
                    <TextBlock ></TextBlock>
                    <TextBlock x:Name="Ora" Text=""></TextBlock>
                 </StatusBar>
            </DockPanel>
            <StackPanel
                Orientation="Horizontal"
                HorizontalAlignment="Center"
                FlowDirection="RightToLeft"
                 VerticalAlignment="Center"
                Margin="2,5,2,5" Grid.ColumnSpan="2" Grid.Row="1">
    
                <Button
                    Name="btnAnnulla"
                    Margin="4,2,4,2"
                    Padding="8,4,8,4"
                    Click="btnAnnulla_Click"
                    ToolTip="Annulla Operazione">
                    <TextBlock 
                        Margin="4,2,4,2"
                        HorizontalAlignment="Left"
                        VerticalAlignment="Center"
                        Text="Annulla"></TextBlock>
                </Button>
                <Button
                    Name="btnNuovo"
                    Margin="4,2,4,2"
                    Padding="8,4,8,4"
                    Click="btnNuovo_Click"
                    ToolTip="Inserisce nuovo Record nel Database">
                    <TextBlock 
                        Margin="4,2,4,2"
                        HorizontalAlignment="Left"
                        VerticalAlignment="Center"
                        Text="Nuovo"
                        Foreground="Blue"/>
    
                </Button>
                <Button
                    Name="btnConferma"
                    Margin="4,2,4,2"
                    Padding="8,4,8,4"
                    Click="btnConferma_Click"
                    ToolTip="Aggiorna il Record nel DataBase">
                    <TextBlock 
                        Margin="4,2,4,2"
                        HorizontalAlignment="Left"
                        VerticalAlignment="Center"
                        Text="Conferma"/>
                </Button>
                <Button
                    Name="btnDelete"
                    Margin="4,2,4,2"
                    Padding="8,4,8,4"
                    Click="btnDelete_Click"
                    ToolTip="Cancella il Record nel DataBase">
                    <TextBlock 
                        Margin="4,2,4,2"
                        HorizontalAlignment="Left"
                        VerticalAlignment="Center"
                        Text="Cancella" Foreground="red"/>
                </Button>
     
            </StackPanel>
        </Grid>
    </UserControl>
    

    i Riferimenti mi sembrano corretti per l'indirizzamento dell'UserControl

    Ho ricontrllato sul file .xaml della pagina chiamata dove va in errore ci sono solo i link dei namespaces del progetto e del User Control.

    Nel file .cs ho messo using a tutti i namespace con suffiso Gm (Sviluppati da me e non mi sembra manchi nulla)

    <Window x:Class="Gm.Moreno.Windows.Dettaglio1"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:wr="clr-namespace:Gm.Moreno.Windows"
            xmlns:gm="clr-namespace:GmControl;assembly=MyGmControl"
            mc:Ignorable="d"
            Title="Dettaglio1" Height="500" Width="533">
    <grid>
    campi vari
    riferimento a User Cntrol
            <gm:UserControl1 VerticalAlignment="Bottom" HorizontalAlignment="Center" Height="95" Grid.Row="1" btnAnnullaClick="UserControl1_btnAnnullaClick" btnConfermaClick="UserControl1_btnConfermaClick" btnDeleteClick="UserControl1_btnDeleteClick" btnNuovoClick="UserControl1_btnNuovoClick" Margin="35,0,-160,102" Width="510" Grid.ColumnSpan="3" />
        </Grid>
    </Window>
    

    file .cs

    using Gm.Moreno.Context;
    using Gm.Moreno.Converters;
    using GmControl;
    using Gm.Moreno.Windows;
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Shapes;
    
    namespace Gm.Moreno.Windows
    {
        /// <summary>
        /// Logica di interazione per Dettaglio1.xaml
        /// </summary>
        public partial class Dettaglio1 : Window
        {
            public Dettaglio1()
            {
                // InitializeComponent(); 
                try
                {
                    InitializeComponent();
                }
                catch ( Exception ex )
                { 
                   //  Log error (including InnerExceptions!)
                   // Handle exception }
                        MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
    
            public void UserControl1_btnConfermaClick(object sender, RoutedEventArgs e)
            {
                MessageBox.Show("Uso il controllo - BtnConferma", "Appl Moreno Dettaglio", MessageBoxButton.OKCancel, MessageBoxImage.Information);
            }
    
            public void UserControl1_btnAnnullaClick(object sender, RoutedEventArgs e)
            {
                MessageBox.Show("Uso il controllo - BtnAnnulla !!!!", "Appl Moreno Dettaglio", MessageBoxButton.OKCancel, MessageBoxImage.Exclamation);
            }
    
            public void UserControl1_btnDeleteClick(object sender, RoutedEventArgs e)
            {
                MessageBox.Show("Uso il controllo - BtnDelet   ahi ahi  !!!!", "Appl Moreno Dettaglio", MessageBoxButton.OKCancel, MessageBoxImage.Warning);
            }
    
            public void UserControl1_btnNuovoClick(object sender, RoutedEventArgs e)
            {
                MessageBox.Show("Uso il controllo - BtnNuovo  Forza !!!!", "Appl Moreno Dettaglio", MessageBoxButton.OKCancel, MessageBoxImage.Stop);
            }
        }
    }
    

    mi sembra tutto coerente.

    come soluzione pensi che sarebbe un disagio controllare tu dal vivo se ti passo la soluzione e l'user Control ?

    Mi sembra veramente quasi una barzelletta.

    Ho guardato direi tutto mille volte e non vedo cosa manchi.

    Grazie

    Moreno

    mercoledì 8 febbraio 2017 10:02
  • Ciao.

    Ok, a questo punto immagino che nel code behind del userControl non ci sia nulla oltre gli eventi.

    prova a postare la soluzione, ma non so quando potrò darli un occhiata.

    mercoledì 8 febbraio 2017 14:58
    Postatore
  • Cio U235

    Mi scuso per la tardiva risposta.

    Ho seguito il tuo consiglio e ho inserito all'interno della soluzione il progetto user control.

    Non da più errore e cerco di provare a risolvere.

    Ti ringrazio per l'assistenza e spero di non dissturbare oltre.

    Grazie infinite per la pazienza e la disponibilità

    Moreno

    venerdì 10 febbraio 2017 13:17
  • Figurati. A me non disturbi affatto se domandi (non essendo obbligato a leggere o rispondere, non potrebbe essere diversamente), e per la comunità credo sia un bene. Quindi non credo ti debba mettere problemi in tal senso.

    Se posso permettermi un ultimo consiglio: controlla che tutte le dipendenze necessarie nella libreria siano presenti anche nel progetto che le usa. controlla la cartella "bin" (debug o release) del progetto, e assicurati che siano presenti tutti gli assembly che ci sono nella cartella equivalente della libreria (nelle stesse versioni).

    Per capirci: ad esempio se usi EF per connetterti nella libreria, controlla che nel progetto che la usa ci sia la dll di ef.

    ovviamente questo in cascata, nel senso che se la libreria usa a sua volta un altra libreria, nel progetto finale ci devono essere entrambe e con le loro rispettive dipendenze (occhio sempre alle versioni delle dipendenze pero).

    venerdì 10 febbraio 2017 13:41
    Postatore
  • Ciao U235

    ho cantato troppo presto.

    Il mio user control ora funziona dentro una form del progetto, ma è personalizzata in parte.

    La struttura del Use control è fatta da una Statusbar in alto, che devo personalizzare con:

    - Nome della funzione in uso;

    - Anagrafica utenteloggato,

    - Data del giorno

    - ora del giorno

    Non so come popolare questi campi nella statusbar.

    riporto il codice xaml della form che usa User Control

    <Window x:Class="Gm.Moreno.Windows.Dettaglio1"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:wr="clr-namespace:Gm.Moreno.Windows"
            xmlns:gctrl="clr-namespace:GmControls;assembly=GmControls"
            mc:Ignorable="d"
            Title="Dettaglio1" Height="500" Width="533">
        <!-- Precedente controllo xmlns:gm="clr-namespace:Gm.GridButton;assembly=GridButton" -->
        <Grid Margin="0,0,0,60">
            <Grid.RowDefinitions>
                <RowDefinition Height="295"/>
                <RowDefinition Height="205"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="80" />
                <ColumnDefinition Width="20" />
                <ColumnDefinition Width="220" />
            </Grid.ColumnDefinitions>
            <TextBlock x:Name="txtBlockMatricola" HorizontalAlignment="Left" Height="17" Margin="10,17,0,0" TextWrapping="Wrap" Text="Matricola" VerticalAlignment="Top" Width="61"/>
            <TextBlock x:Name="txtBlockCognome" HorizontalAlignment="Left" Height="15" Margin="10,39,0,0" TextWrapping="Wrap" Text="Cognome" VerticalAlignment="Top" Width="63"/>
            <TextBlock x:Name="txtBlockNome" HorizontalAlignment="Left" Height="15" Margin="10,59,0,0" TextWrapping="Wrap" Text="Nome" VerticalAlignment="Top" Width="63"/>
            <TextBlock x:Name="txtBlockUserId" HorizontalAlignment="Left" Height="17" Margin="10,79,0,0" TextWrapping="Wrap" Text="UserId" VerticalAlignment="Top" Width="63"/>
            <TextBlock x:Name="txtBlockPassword" HorizontalAlignment="Left" Height="15" Margin="10,107,0,0" TextWrapping="Wrap" Text="Password" VerticalAlignment="Top" Width="61"/>
            <TextBlock x:Name="txtBlockTitolo" HorizontalAlignment="Left" Height="17" Margin="10,135,0,0" TextWrapping="Wrap" Text="Titolo" VerticalAlignment="Top" Width="61"/>
            <TextBlock x:Name="txtBlockLivello" HorizontalAlignment="Left" Height="17" Margin="10,157,0,0" TextWrapping="Wrap" Text="Livello" VerticalAlignment="Top" Width="61"/>
            <TextBlock x:Name="txtBlockStato" HorizontalAlignment="Left" Height="17" Margin="10,179,0,0" TextWrapping="Wrap" Text="Stato" VerticalAlignment="Top" Width="61"/>
            <TextBlock x:Name="txtBlockNote" HorizontalAlignment="Left" Height="17" Margin="10,201,0,0" TextWrapping="Wrap" Text="Note" VerticalAlignment="Top" Width="61"/>
            <TextBox x:Name="txtMatricola" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="0,17,0,0" TextWrapping="Wrap" Text="Matricola" VerticalAlignment="Top" Width="54"/>
            <Button x:Name="btnRicerca_0" Content="Ricerca" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="68,17,0,0" VerticalAlignment="Top" Width="52" />
            <TextBox x:Name="txtCognome" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="0,39,0,0" TextWrapping="Wrap" Text="Cognome" VerticalAlignment="Top" Width="182"/>
            <TextBox x:Name="txtNome" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="0,60,0,0" TextWrapping="Wrap" Text="Nome" VerticalAlignment="Top" Width="182"/>
            <TextBox x:Name="txtUserId" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="0,82,0,0" TextWrapping="Wrap" Text="UserId" VerticalAlignment="Top" Width="54"/>
            <PasswordBox x:Name="passwordBox" Grid.Column="2" HorizontalAlignment="Left" Height="15" Margin="0,107,0,0" VerticalAlignment="Top" Width="83" MaxLength="10"/>
            <TextBox x:Name="txtTitolo" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="0,135,0,0" TextWrapping="Wrap" Text="Tit" VerticalAlignment="Top" Width="54"/>
            <TextBox x:Name="txtok" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="211,17,-64,0" TextWrapping="Wrap" Text="K0" VerticalAlignment="Top" Width="54" Visibility="Hidden"/>
            <Button x:Name="btnRicerca_1" Content="Ricerca" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="68,137,0,0" VerticalAlignment="Top" Width="52" />
            <TextBox x:Name="txt1" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="217,138,-70,0" TextWrapping="Wrap" Text="K1" VerticalAlignment="Top" Width="54"  Visibility="Hidden"/>
            <TextBox x:Name="txtLivello" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="0,160,0,0" TextWrapping="Wrap" Text="Level" VerticalAlignment="Top" Width="54"/>
            <Button x:Name="btnRicerca_2" Content="Ricerca" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="68,160,0,0" VerticalAlignment="Top" Width="52" />
            <TextBox x:Name="txt2" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="217,160,-70,0" TextWrapping="Wrap" Text="K2" VerticalAlignment="Top" Width="54"  Visibility="Hidden"/>
            <TextBox x:Name="txtStato" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="0,182,0,0" TextWrapping="Wrap" Text="Stato" VerticalAlignment="Top" Width="54" RenderTransformOrigin="0.601,2.108"/>
            <Button x:Name="btnRicerca_3" Content="Ricerca" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="68,181,0,0" VerticalAlignment="Top" Width="52" />
            <TextBox x:Name="txt3" Grid.Column="2" HorizontalAlignment="Left" Height="17" Margin="217,182,-70,0" TextWrapping="Wrap" Text="K3" VerticalAlignment="Top" Width="54"  Visibility="Hidden"/>
            <TextBox x:Name="txtNote" Grid.Column="2" HorizontalAlignment="Left" Height="74" Margin="0,204,-8,0" TextWrapping="Wrap" Text="Note" VerticalAlignment="Top" Width="209" RenderTransformOrigin="0.601,2.108" AcceptsReturn="True"/>
            <gctrl:ButtonControl VerticalAlignment="Bottom" HorizontalAlignment="Center" Height="95" Grid.Row="1" btnAnnullaClick="UserControl1_btnAnnullaClick" btnConfermaClick="UserControl1_btnConfermaClick" btnDeleteClick="UserControl1_btnDeleteClick" btnNuovoClick="UserControl1_btnNuovoClick" Margin="35,0,-160,102" Width="510" Grid.ColumnSpan="3" />
        </Grid>
    </Window>
    

    riporto xaml dello User control

    <UserControl x:Class="GmControls.ButtonControl"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
                 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
                 xmlns:local="clr-namespace:GmControls;assembly=GmControls"
                 mc:Ignorable="d" 
                 d:DesignHeight="95" d:DesignWidth="350">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="27"/>
                <RowDefinition Height="41"/>
                <RowDefinition Height="27"/>
            </Grid.RowDefinitions>
            <DockPanel Grid.Row="0">
                <StatusBar  Height="20" Grid.ColumnSpan="1" HorizontalAlignment="Left" Name="statusBar1" VerticalAlignment="Top" Width="350" Background="AntiqueWhite" Margin="0,5,0,-10">
                    <TextBlock x:Name="Funzione" Text=""></TextBlock>
                    <Separator  Grid.Column="1"/>
                    <TextBlock x:Name="Utente" Text="" Grid.Column="2"></TextBlock>
                    <Separator   Grid.Column="3"/>
                    <TextBlock Grid.Column="4">Profilo:</TextBlock>
                    <TextBlock x:Name="Profilo" Text="" Grid.Column="5"></TextBlock>
                    <Separator   Grid.Column="6"/>
                    <TextBlock x:Name="DatadelGiorno" Text="" Grid.Column="7"></TextBlock>
                    <Separator   Grid.Column="8"/>
                    <TextBlock x:Name="Hms" Text="" Grid.Column="9"></TextBlock>
                </StatusBar>
            </DockPanel>
            <DockPanel Grid.Row="2">
                <StatusBar  Height="20" Grid.ColumnSpan="1" HorizontalAlignment="Left" Name="statusBar2" VerticalAlignment="Top" Width="350" Background="Aquamarine" Margin="0,5,0,-10">
                    <TextBlock x:Name="RigaMessaggio" Text=""></TextBlock>
                    <Separator/>
                    <TextBlock x:Name="DataOdierna" Text=""></TextBlock>
                    <Separator/>
                    <TextBlock ></TextBlock>
                    <TextBlock x:Name="Ora" Text=""></TextBlock>
    
                    <!--   esempio con binding
                    <TextBlock x:Name="RigaMessaggio" Text="{Binding Path=CMessaggio}"></TextBlock>
                    <Separator/>
                    <TextBlock x:Name="DataOdierna" Text="{Binding Path=DataDelGiorno,NotifyOnSourceUpdated=True, Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"></TextBlock>
                    <Separator/>
                    <TextBlock > </TextBlock>
                    <TextBlock x:Name="Ora" Text="{Binding Path=OraAttuale}"></TextBlock>
                    -->
                </StatusBar>
            </DockPanel>
            <StackPanel
                Orientation="Horizontal"
                HorizontalAlignment="Center"
                FlowDirection="RightToLeft"
                 VerticalAlignment="Center"
                Margin="2,5,2,5" Grid.ColumnSpan="2" Grid.Row="1">
    
                <Button
                    Name="btnAnnulla"
                    Margin="4,2,4,2"
                    Padding="8,4,8,4"
                    Click="btnAnnulla_Click"
                    ToolTip="Annulla Operazione">
                    <TextBlock 
                        Margin="4,2,4,2"
                        HorizontalAlignment="Left"
                        VerticalAlignment="Center"
                        Text="Annulla"></TextBlock>
                </Button>
                <Button
                    Name="btnNuovo"
                    Margin="4,2,4,2"
                    Padding="8,4,8,4"
                    Click="btnNuovo_Click"
                    ToolTip="Inserisce nuovo Record nel Database">
                    <TextBlock 
                        Margin="4,2,4,2"
                        HorizontalAlignment="Left"
                        VerticalAlignment="Center"
                        Text="Nuovo"
                        Foreground="Blue"/>
    
                </Button>
                <Button
                    Name="btnConferma"
                    Margin="4,2,4,2"
                    Padding="8,4,8,4"
                    Click="btnConferma_Click"
                    ToolTip="Aggiorna il Record nel DataBase">
                    <TextBlock 
                        Margin="4,2,4,2"
                        HorizontalAlignment="Left"
                        VerticalAlignment="Center"
                        Text="Conferma"/>
                </Button>
                <Button
                    Name="btnDelete"
                    Margin="4,2,4,2"
                    Padding="8,4,8,4"
                    Click="btnDelete_Click"
                    ToolTip="Cancella il Record nel DataBase">
                    <TextBlock 
                        Margin="4,2,4,2"
                        HorizontalAlignment="Left"
                        VerticalAlignment="Center"
                        Text="Cancella" Foreground="red"/>
                </Button>
     
            </StackPanel>
        </Grid>
    </UserControl>
    

    sicuramente devo personalizzare qualcosa, ma non so come.

    Per fare una prova vorrei cliccando un  bottoneche mi venisssero popolare quelle paarti dello Statusbar  evidenziati in grassetto.

    Se risci ad aiutarmi, vado avanti.

    Grazie

    Moreno

    venerdì 10 febbraio 2017 15:26
  • Mi sa che ti conviene aprire un altro thread, questo ha già diverse soluzioni alla questione di base, se poi aggiungiamo anche altre questioni poi chi eventualmente leggerà in futuro potrebbe avere difficoltà a capire.

    Il discorso della libreria inclusa nel progetto dovrebbe essere stata risolta, giusto?

    e nel caso cosa ti ha fatto risolvere? considera che un po tutte le soluzioni proposte dai diversi utenti hanno contribuito a risolvere problemi diversi in questo post, quindi vedi un po tu quelle che credi sia meglio segnare come risposte e che hanno contribuito a risolvere.

    Sull'ultima tua richiesta il discorso cambia a secondo di come vuoi affrontare la scrittura di codice per WPF, forse è il caso che incominci a strizzare l'occhio a MVVM.

    Non che non possa continuare nella strada che stai prendendo, ma sai conoscere altre possibilità potrebbe essere "edificante".

    venerdì 10 febbraio 2017 15:41
    Postatore
  • grazie U235

    Ti chiudo questa e apro una nuova richiesta come consigliato.

    Ovviamente dovrò affrontare MVVM, ma al momento se puoi darmi una dritta per non lasciarmi nel guado.

    Grazie

    Moreno

    venerdì 10 febbraio 2017 16:34