WPF XAML组合框与更新后的ItemsSource的实际值同步

时间:2018-11-27 09:18:44

标签: c# wpf xaml telerik

我的组合框与实际选择的值保持同步时出现问题。我有一个数据网格,它将选定的行值绑定到一个对象。所选对象的属性代码值为“ test2”。

我的组合框有一个选项“ test1”,“ test2”和“ test3”

当我选择此对象时,组合框将使用正确的值“ test2”进行更新,但是在更新ItemsSource时,由于我使用isSynchronizedWithCurrentItem = true,它会自动在组合框中设置第一个替代项。我的应用程序每10秒轮询一次新项目,然后更新/刷新itemssource,那么我的问题是,如何使组合框与实际选择的组合框替代/项目同步?

就像我选择“ test3”并且itemssource更新一样,组合框仍将显示“ test3”,而不是第一个默认值“ test1”。或者更确切地说,如果我没有选择其他值,它仍然会与所选对象“测试”中的当前值保持不变?

这是我的XAML代码:我绑定到的对象是一个公共UserObject对象。

<TextBlock Grid.Column="1" Grid.Row="0" Text="Name:" VerticalAlignment="Center"  />
<telerik:RadComboBox Grid.Column="2" Grid.Row="0" Text="{Binding Object.Code, Mode=TwoWay}" Margin="4 4 0 4" FontSize="13" IsReadOnly="True" ItemsSource="{Binding Objects}" 
     DisplayMemberPath="Code" SelectedValue = "{Binding Object.Code}"  SelectedValuePath="Code" 
     SelectedItem="{Binding SelectedCode}" IsSynchronizedWithCurrentItem="True"  />

我该如何解决?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:

private void RefreshFunc()
    {
        string objectCode = Object.Code;

        //update/refresh the itemssource
        ToRefreshItemsSource();

        Object.Code = objectCode;
    }