versucht zu bestimmen, ob es möglich ist, die SelectedValue eines ComboBox an die Eingänge der mehreren ObjectDataProviders mit XAMAL Bindungen zu binden.Ist es möglich, WPF Combobox.SelectedValue an mehrere ObjectDataProvider zu binden?
ich sah Multibinding, aber das scheint mehrere Steuerelemente zusammen zu gruppieren, nicht genau, was zu Tag ich suche.
Ich möchte in der Lage sein, die ComboBox (Standorte) ändern Sie den TextBlock (Deviance), was es tut und den ObjectDataProvider (CommentProvider), um die TextBox (locationComments) zu aktualisieren.
Dies ist recht einfach in einem Code-behind würde aber lieber nicht diesen Weg als eine Lernerfahrung gehen.
XAMAL CODE
<Window.Resources>
<ObjectDataProvider x:Key="LocationProvider"
ObjectType="{x:Type srv:ServiceClient}"
IsAsynchronous="True"MethodName="GetAssignedLocations" />
<ObjectDataProvider
x:Key="DevianceProvider"
ObjectType="{x:Type srv:ServiceClient}"
IsAsynchronous="True" MethodName="GetPercentChange">
<ObjectDataProvider.MethodParameters>
<system:String>Location1</system:String>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
<ObjectDataProvider
x:Key="CommentProvider"
ObjectType="{x:Type srv:ServiceClient}"
IsAsynchronous="True"
MethodName="GetCommentByBusinessUnit">
<ObjectDataProvider.MethodParameters>
<system:String>Location1</system:String>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Window.Resources>
<ComboBox Height="23" HorizontalAlignment="Left" Margin="12,12,0,0" Name="locations" VerticalAlignment="Top" ItemsSource="{Binding Source={StaticResource LocationProvider}}"
DisplayMemberPath="BuName" SelectedValuePath="BuKey"
SelectionChanged="locations_SelectionChanged">
<ComboBox.SelectedValue>
<Binding Source="{StaticResource DevianceProvider}"
Path="MethodParameters[0]"
BindsDirectlyToSource="True"
Mode="OneWayToSource" />
</ComboBox.SelectedValue>
<TextBlock Name="deviance" Height="23" Margin="0,0,645,17" Width="40" Text="{Binding Source={StaticResource DevianceProvider}}" IsEnabled="False" />
<TextBox Height="23" Margin="0,0,181,17" Name="locationComments" Width="350" />
Es scheint, dass mit dem Konverter und mehrbindigen die objectdataproviders feuern nicht, wenn der gewählte Wert geändert wird. Der Breakpoint innerhalb von ConvertBack wird getroffen, aber die Breakpoints in meinem WCF-Dienst werden nicht getroffen. – Brian
Ich habe mein Problem erkannt. Wenn Sie das Quell-Tag nicht richtig angeben, funktioniert es nicht. Stell dir das vor. Source = „{Static CommentProvider}“ – Brian
Das erste, was in den Sinn kommt, ist, dass die Typen übereinstimmen müssen. Auch wenn Sie in WPF ziemlich viele Werte in ein beliebiges Feld einfügen können, wird bei einigen Dingen wie den Methodenparametern oder der neuen StringFormat-Bindungseigenschaft der Typ erkannt. Also, wenn Ihr BuKey nicht auch ein String ist, der Probleme verursachen könnte. Jenseits dieser möglichen Ursache, sollte es funktionieren und WCF kann der Blocker hier sein. Ein schneller Weg, um dies zu lösen, wäre, die Objektdatenanbieter zu entfernen und im ConvertBack die Methodenaufrufe durchzuführen, die Sie benötigen. Dann in den Bindungen an die benötigten Elemente binden. – rmoore