ربط بيانات 2 ComboBoxes WPF بمصدر واحد دون "الارتباط"

StackOverflow https://stackoverflow.com/questions/134872

  •  02-07-2019
  •  | 
  •  

سؤال

لدي سيناريو تفصيلي رئيسي حيث لدي شركة واحدة مدرجة في ComboBox من ObjectDataSourceProvider.بموجب ذلك لدي صندوقين تحرير وسرد مرتبطين بخاصية جهات الاتصال من كائن الشركة الحالي.أحتاج إلى أن أكون قادرًا على تحديد جهة اتصال مختلفة في كل ComboBox؛ومع ذلك، بمجرد أن أقوم بتغيير التحديد في قائمة واحدة، يتم تحديث القائمة الأخرى لنفس جهة الاتصال.

لقد قمت بتجربة إعدادات مختلفة (OneWay مقابل OneWay).TwoWay) ولكن يبدو أن لا شيء يعمل حتى الآن.هنا مقتطف من XAML الخاص بي.

<Page.Resources>
    <!-- This is a custom class inheriting from ObjectDataProvider -->
    <wg:CustomersDataProvider x:Key="CompanyDataList" />
</Page.Resources>

<Grid>
    <!--- other layout XAML removed -->
    <ComboBox x:Name="Customer" Width="150"
              ItemsSource="{Binding Source={StaticResource CompanyDataList},Path=Companies,Mode=OneWay}"
              DisplayMemberPath="Name"
              SelectedValuePath="Id"
              IsSynchronizedWithCurrentItem="True"
              SelectedValue="{Binding Path=Id, Mode=OneWay}" 
              VerticalAlignment="Bottom" />

    <ComboBox x:Name="PrimaryContact" Width="150"
              DataContext="{Binding ElementName=Customer,Path=Items,Mode=OneWay}"
              ItemsSource="{Binding Path=Contacts,Mode=OneWay}"
              DisplayMemberPath="FullName"
              SelectedValuePath="Id"
              IsSynchronizedWithCurrentItem="True"
              SelectedValue="{Binding Path=Id,Mode=OneWay}" />

    <ComboBox x:Name="AdminContact" Width="150"
              DataContext="{Binding ElementName=OwnerCustomer,Path=Items,Mode=OneWay}"
              ItemsSource="{Binding Path=Contacts,Mode=OneWay}"
              DisplayMemberPath="FullName"
              SelectedValuePath="Id"
              IsSynchronizedWithCurrentItem="True"
              SelectedValue="{Binding Path=Id,Mode=OneWay}" />

    <!--- other layout XAML removed -->
</Grid>

اعتقدت أن إنشاء CollectionViewSource سيكون هو الحل الأمثل، لكنني لم أتمكن من تحقيق ذلك.هل هناك طريقة بسيطة للقيام بذلك حتى لا يتم ربط PrimaryContact وAdminContact؟

هل كانت مفيدة؟

المحلول

تغيير الخاص بك "IsSynchronizedWithCurrentItem"ينسب إلى "خطأ".

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top