Laden...
J
jok3r89
myCSharp.de - Member
19
Themen
70
Beiträge
Letzte Aktivität
vor 5 Jahren
Dabei seit
03.09.2017
Erstellt vor 6 Jahren

Hallo,
Der Code wurde angepasst RoslynPad befindet sich jetzt auch im gleichen Projekt.
Wenn ich das richtig verstehe könnte ich dann komplett darauf verzichten?

Edit:


            var container = new ContainerConfiguration()
                .WithAssembly(typeof(MainView).Assembly);           
            var locator = container.CreateContainer().GetExport<IServiceProvider>();

So gehts erst mal.

Also bisher finde ich es doch ganz schön übertrieben komplex so recht sind mir scheinbar die Vorteile noch nicht bewusst...

Vielen Dank fürs Helfen

Gruß

Erstellt vor 6 Jahren

Hallo, ich versuche gerade ein Projekt zu verstehen "RoslynPad" weil ich teilweise bei mir davon was Implementieren will

Aber beim besten willen was passiert hier

            var container = new ContainerConfiguration()
                .WithAssembly(typeof(MainViewModelBase).Assembly)   // RoslynPad.Common.UI
                .WithAssembly(typeof(MainView).Assembly);           // RoslynPad
            var locator = container.CreateContainer().GetExport<IServiceProvider>();


            _viewModel = locator.GetService<MainViewModelBase>();

Die Ausnahme die ausgelöst wird bringt mich nämlich auch nicht wirklich weiter.

Fehlermeldung:
System.Windows.Markup.XamlParseException
HResult=0x80131501
Message=Zeilennummer "15" und Zeilenposition "10" von "Durch den Aufruf des Konstruktors für Typ "ThePLCProject.Ui.Editor.Views.MainView", der den angegebenen Bindungseinschränkungen entspricht, wurde eine Ausnahme ausgelöst.".
Source=PresentationFramework
StackTrace:
at System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri)

Inner Exception 1:
CompositionFailedException: Only one export for the contract 'IServiceProvider' is allowed, but the following parts: 'SystemCompositionServiceProvider', 'SystemCompositionServiceProvider' export it.

Schon mal vielen Dank für die Geduld
Gruß

Erstellt vor 6 Jahren

Servus,

ui zeigt nur auf den Namespace.
Ich hab das Problem aber erstmal gelöst, was genau geholfen hat weiß ich aber nicht.
Dieses Problem habe ich aber bei Bindings auch des öfteren, dann zeigt mir der Designer einfach nichts mehr an.

Ich hab jetzt den Build Ordner gelöscht und die .sue Datei......
Aktuell passt es wieder.

Gruß

Erstellt vor 6 Jahren

Hallo,
Ich habe vermehrt das Problem das Klassen in einem Namespace nicht gefunden werden zumindestens sagt mir das der Designer.
Wenn ich das Programm aber starte passt alles.

Woran kann das liegen ?
Bsp:

d:DataContext="{d:DesignInstance ui:MainViewModel}"

Tooltip " The Name MainViewModel does not exist in the Namspace......"

Gruß

Erstellt vor 6 Jahren

okay danke.

Ich erzeuge aktuell die Datenbank via Code

Und bekomme gelegentlich die Exceptions

Fehlermeldung:
System.DllNotFoundException: 'Die DLL "e_sqlite3": Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E) kann nicht geladen werden.'

bei Batteries.Init


        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            if (!optionsBuilder.IsConfigured)
            {
                Batteries.Init();

                optionsBuilder.UseSqlite("Data Source=MyDatabase.sqlite");
            }
        }

Gruß

Erstellt vor 6 Jahren

Ich kenne keine Empfehlung und nach kurzen googlen bin ich auch nicht fündig geworden.Ich hab nur sehr viele Empfehlungen gefunden und nicht die eine.

Ist das denn eigentlich nötig ?

Grüße

Erstellt vor 6 Jahren

Also ich hab es aufgegeben,..

Ich arbeite jetzt mit einem Template und der Aufbau ist ein wenig verändert und ja was soll ich sagen es geht. Ich kann mir aber immer noch nicht erklären wieso der andere Ansatz nicht funktionierte evtl meldet sich dazu ja noch jemand

        <DataTemplate x:Key="MenuItemTemplate">
            <Grid Height="60" RenderTransformOrigin="0.5,0.5">
                <Button Command="{Binding Path=NavigationToCommand}" CommandParameter="{Binding}" Style="{x:Null}" Background="Transparent" BorderThickness="0">
                    <StackPanel Orientation="Horizontal" Margin="50 0" Height="60" RenderTransformOrigin="0.5,0.5">
                        <materialDesign:PackIcon Kind="{Binding NavigationIcon}" Width="30" Height="30" VerticalAlignment="Center" Margin="5"/>
                        <TextBlock Text="{Binding Path = NavigationName}" Margin="10" VerticalAlignment="Center" Style="{x:Null}" Background="Transparent" FontSize="15"/>
                    </StackPanel>
                </Button>
            </Grid>
        </DataTemplate>

v

  
          <ListBox x:Name="allToDoItemsListBox" 
             ItemsSource="{Binding MenuItems,Mode=OneWay}" 
             ItemTemplate="{StaticResource MenuItemTemplate}"
             HorizontalAlignment="Right"/>

Grüße

Erstellt vor 6 Jahren

Hallo,
Ja ich arbeite mit ViewModels und mit Prism(AutoWireViewModel ist aktiviert).

Hier ein größerer ausschnitt ich habe die ItemSource vom ListView auf meine Liste gesetzt.

            <ListView x:Name="MainMenu" ItemsSource="{Binding MenuItems}">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal" Margin="50 0" Height="60" RenderTransformOrigin="0.5,0.5">
                            <materialDesign:PackIcon Kind="{Binding Path= NavigationIcon}" Width="30" Height="30" VerticalAlignment="Center" Margin="5"/>
                            <TextBlock Text="{Binding Path= NavigationName}" Margin="10" VerticalAlignment="Center">
                                <TextBlock.InputBindings>
                                    <MouseBinding
                                        Command="{Binding Path=NavigationToCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListView}}}"
                                        MouseAction="LeftClick" />
                                </TextBlock.InputBindings>
                            </TextBlock>
                        </StackPanel>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
Erstellt vor 6 Jahren

Ich habe schon mehrfach gelesen das es Probleme macht wenn man durch ein Datatemplate ein Delegate Command auslösen will.

Ich hab es daher via einer RelativeSource versucht.


         <ListView.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal" Margin="50 0" Height="60" RenderTransformOrigin="0.5,0.5">
                            <materialDesign:PackIcon Kind="{Binding Path= NavigationIcon}" Width="30" Height="30" VerticalAlignment="Center" Margin="5"/>
                            <TextBlock Text="{Binding Path= NavigationName}" Margin="10" VerticalAlignment="Center">
                                <TextBlock.InputBindings>
                                    <MouseBinding 
                                        Command="{Binding Path=NavigationToCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListView}}}"   
                                        MouseAction="LeftClick" />
                                </TextBlock.InputBindings>
                            </TextBlock>
                        </StackPanel>
                    </DataTemplate>
                </ListView.ItemTemplate>

Ich kann nur gerade nicht viel mit dieser Meldung anfangen
"System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Documents.List', AncestorLevel='1''. BindingExpression:Path=NavigationToCommand; DataItem=null; target element is 'MouseBinding' (HashCode=2881685); target property is 'Command' (type 'ICommand')
"
und
"
System.Windows.Data Error: 40 : BindingExpression path error: 'NavigationToCommand' property not found on 'object' ''ListView' (Name='MainMenu')'. BindingExpression:Path=NavigationToCommand; DataItem='ListView' (Name='MainMenu'); target element is 'MouseBinding' (HashCode=2881685); target property is 'Command' (type 'ICommand')
"

Gruß

Erstellt vor 6 Jahren

Also es gibt bei mir

  • eine Solution
    -ThePLCProject
  • mit mehren Projekten
    -Ui.Desktop ( Start Projekt )
    -Ui.Region
    -Logic.Ui
    -Logic.PLCService
    -Model.SQLite ( Darin befindet sich DbContext)

In Model.SQLite befindet sich eben das

optionsBuilder.UseSqlite("Data Source=MyDatabase.sqlite", x => x.MigrationsAssembly("ThePLCProject.Model.SQLite"));

Wobei mir nicht bewusst ist wofür der Lambda Ausdruck benutzt wird.

Ich bin eben nach dem von dir verlinkten Beispiel vorgegangen.
Einzig bei Punkt 2 bin ich mir nicht ganz sicher, ich hab hier einfach einen Verweis von Model.SQLite in Ui.Desktop hinzugefügt. Das war ja so gemeint?
Und ebenso hab ich Punkt 5 nicht gemacht weil ich keine Ringabhängigkeit bisher hab.

Gruß