Voila
pour des raison de comportement commun je doit faire herite certains usercontrol d'un usercontrol de base comme cela (sans le xaml)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
    public class BaseLeveledControl : UserControl
    {
        //----------------------------------------------------------------------------------------------------
        public BaseLeveledControl() : base()
        {
        }
        //-------------------------------------------------------------------------------
        #region Level
        //-------------------------------------------------------------------------------
        public eLeveled Level
.....
puis je defini mon fils comme ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
<local:BaseLeveledControl x:Class="SentinelSAS.Compoments.SASXLevel"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:test_routed_messages"
.....
et son code normalement
maintenant si j'utilise le dit composant SASXLevel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
        <SentinelSAS_Compoments:SASXLevel
j'ai une erreur a l'execution
{"Cannot create instance of 'SASXLevel' defined in assembly 'test routed messages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Exception has been thrown by the target of an invocation. Error at object 'System.Windows.Controls.Grid' in markup file 'test routed messages;component/window1.xaml' Line 40 Position 10."}

ou plus en detail
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
   at System.Windows.Markup.XamlParseException.ThrowException(String message, Exception innerException, Int32 lineNumber, Int32 linePosition, Uri baseUri, XamlObjectIds currentXamlObjectIds, XamlObjectIds contextXamlObjectIds, Type objectType)
   at System.Windows.Markup.XamlParseException.ThrowException(ParserContext parserContext, Int32 lineNumber, Int32 linePosition, String message, Exception innerException)
   at System.Windows.Markup.BamlRecordReader.ThrowExceptionWithLine(String message, Exception innerException)
   at System.Windows.Markup.BamlRecordReader.CreateInstanceFromType(Type type, Int16 typeId, Boolean throwOnFail)
   at System.Windows.Markup.BamlRecordReader.GetElementAndFlags(BamlElementStartRecord bamlElementStartRecord, Object& element, ReaderFlags& flags, Type& delayCreatedType, Int16& delayCreatedTypeId)
   at System.Windows.Markup.BamlRecordReader.BaseReadElementStartRecord(BamlElementStartRecord bamlElementRecord)
   at System.Windows.Markup.BamlRecordReader.ReadElementStartRecord(BamlElementStartRecord bamlElementRecord)
   at System.Windows.Markup.BamlRecordReader.ReadRecord(BamlRecord bamlRecord)
   at System.Windows.Markup.BamlRecordReader.Read(Boolean singleRecord)
   at System.Windows.Markup.TreeBuilderBamlTranslator.ParseFragment()
   at System.Windows.Markup.TreeBuilder.Parse()
   at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
   at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
   at test_routed_messages.Window1.InitializeComponent() in c:\Documents and Settings\Ble\Mes documents\@bruno\@TEST\test routed messages\test routed messages\Window1.xaml:line 1
   at test_routed_messages.Window1..ctor() in C:\Documents and Settings\Ble\Mes documents\@bruno\@TEST\test routed messages\test routed messages\Window1.xaml.cs:line 26
kekun a une tite idee ?