Guten Tag!
Das Thema ist wieder so ein Unikat, bei dem mir kein besserer Titel eingefallen ist 🙂 :
Folgende Zustände:
Es gibt ein Ribbon UI-Programm in C# .NET4.0, daß im Grunde zur Datenverarbeitung dient.
Dieses UI arbeitet fast ausschließlich mit Bindungen, was ja auch alles kein Problem ist.
Das Programm liegt auf einem Netzwerkpfad, von dem aus jeder Benutzer das Programm ausführen kann.
Es gibt gesamt 10 Rechner die das Programm verwenden. Bei einem Rechner gibt es dieses folgend seltsame Binding-Problem.
Das Problem des einen Rechners:
Sämtliche Bindungen funktionieren einwandfrei und ohne Probleme, abgesehen von einem:
<ribbon:RibbonGroup Header="Eigenschaften">
<!--<ribbon:RibbonSeparator Style="{StaticResource ResourceKey=KeyRibbonSeparatorVertical}" Margin="6,0"/>-->
<Grid IsEnabled="{Binding Path=CanUserEditProperties, Mode=OneWay}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Text="Aktueller Status:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="3"
Foreground="{Binding Path=IsEnabledTextColor, Mode=OneWay}"/>
<StackPanel Orientation="Horizontal" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center">
<Image Source="{Binding Path=CurrentStatusImage, Mode=OneWay}" Width="16" Height="16" Margin="3,0"/>
<TextBlock Text="{Binding Path=CurrentStatusText, Mode=OneWay}" Margin="3,0"
Foreground="{Binding Path=IsEnabledTextColor, Mode=OneWay}"/>
</StackPanel>
<TextBlock Text="Status setzen:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="3"
Foreground="{Binding Path=IsEnabledTextColor, Mode=OneWay}"/>
<ribbon:RibbonButton x:Name="buttSetNextStatus" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"
Label="{Binding Path=NextStatusText, Mode=OneWay}"
SmallImageSource="{Binding Path=NextStatusImageSource, Mode=OneWay}"
IsEnabled="{Binding Path=CanSetNextStatus, Mode=OneWay}" Click="buttSetNextStatus_Click" />
<ribbon:RibbonButton x:Name="buttResetStatus" Grid.Column="0" Grid.Row="2" Label="Status zurücksetzen:"
SmallImageSource="/TQS.ProjectManager;component/Images/Redo_Small.png"
IsEnabled="{Binding Path=CanStatusReset, Mode=OneWay}" Click="buttResetStatus_Click" />
<ComboBox x:Name="comboBoxResetStatus" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Left" VerticalAlignment="Center"
Background="Transparent" Width="200"
IsEnabled="{Binding Path=CanStatusReset, Mode=OneWay}"
SelectedItem="{Binding Path=ResetStatusSelect, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding Path=ResetStatusCollection, Mode=OneWay}">
</ComboBox>
</Grid>
</ribbon:RibbonGroup>
Der Daten-Kontext wird folgender Maßen zugewiesen:
<ribbon:RibbonWindow x:Class="ProjectManager.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ribbon="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary"
xmlns:local="clr-namespace:ProjectManager"
Title="Programmverwaltung"
x:Name="RibbonWindow"
Width="1000" Height="800" Loaded="RibbonWindow_Loaded" Closing="RibbonWindow_Closing"
FontSize="14" Icon="/ProjectManager;component/Images/ampel_32.png"
DataContext="{Binding RelativeSource={RelativeSource Self}}"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance {x:Type local:MainWindow}}">
Genau an diesen Stellen werden, im Gegenzug zu den anderen Bindungen und PC's, die Bindungseigenschaften nur die ersten 2 Mal abgerufen, danach nicht mehr.
(Der DataContext wird nur 1Mal in XAML zugewiesen.)
(Konnte getestet werden, weil auf dem Rechner das VS2010 installiert ist.)
Kennt irgendjemand von Euch das Problem?
Was für Punkte kann ich noch durchgehen, um das Problem in den Griff zu bekommen?
Ich habe den Titel mal angepasst, so dass Suchende auch etwas damit anfangen können. EDIT: Ich sollte beim Wort "Shift" im Titel das "f" nicht vergessen... 😄
Wenn es auf den anderen Rechnern läuft und nur auf einen nicht, würde ich mal schauen, welche Frameworks auf den Rechnen installiert sind. Achte mal besonders auf das Framework 4.5, mit im wurden auch ein paar Inline Updates für das Framework 4.0 ausgeliefert welche zu Problemen führen können.
So ist z.B. wenn nur das Frameworke 4.0 installiert ist das TowBinding an einer ReadOnly Property möglich, mit Installierten 4.5 wird bei der Verwendung von 4.0 eine Exception geschmissen.
Sollte man mal gelesen haben:
Das Programm liegt auf einem Netzwerkpfad, von dem aus jeder Benutzer das Programm ausführen kann.
Schonmal probiert das Programm lokal zu kopiern? Netzwerkpfade haben manchmal interessante Nebenwirkungen. Vllt hat der eine Rechner andere Sicherheitseinstellungen.
Kennst du den WPF-Ispektor? Vielleicht kannst du mit dem was feststellen? https://wpfinspector.codeplex.com
cSharp Projekte : https://github.com/jogibear9988
Hallo und danke für Eure Meldungen!
@Palin hört sich interessant an, werd ich prüfen...
@unconnected ja, haben wir schon probiert, ist das gleiche Problem...
@jogibear9988 ebenfalls interessant, wenn Ersteres scheitert, werd ich auf jeden Fall den Inspektor benutzen...
Vielen Dank fürs Erste!
Ich habe den Titel mal angepasst, so dass Suchende auch etwas damit anfangen können. EDIT: Ich sollte beim Wort "Shift" im Titel das "f" nicht vergessen... 😄
Hallo nochmal,
@Palin du hattest recht!
Auf meinem Entwicklungsrechner ist schon das Framework 4.5 installiert, habe aber unter 4.0 entwickelt.
Auf dem betroffenen Rechner war aber nur das Framework 4.0 drauf. Im Vergleich zu den anderen PC's war auch das der Unterschied! Nach diesem Update:
http://www.microsoft.com/de-at/download/details.aspx?id=30653
funktionierte auch auf dem betroffenen Rechner das Programm wie gewohnt.
Vielen Dank für Eure Hilfe!
Ich habe den Titel mal angepasst, so dass Suchende auch etwas damit anfangen können. EDIT: Ich sollte beim Wort "Shift" im Titel das "f" nicht vergessen... 😄