gpt4 book ai didi

当 ItemsSource 更改时,Silverlight 4 ComboBox SelectedValue 不起作用

转载 作者:行者123 更新时间:2023-12-03 10:30:38 25 4
gpt4 key购买 nike

我在 ViewModel 类中有 2 个属性,EmployeeList 和 Employee。 EmployeeList 是动态属性,也就是说,这个属性可以在运行时改变。 ViewModel 类源代码如下:

public class SampleViewModel
{
public ObservableCollection<Employee> EmployeeList { get; set; }
public Employee { get { ... } set { ... } }
}

查看已设置其 ItemsSourceSelectedValue EmployeeList 和 Employee 的属性。
ItemsSource="{Binding EmployeeList, Mode=TwoWay}"
SelectedValue="{Binding Employee, Mode=TwoWay}"

除了 EmployeeList 已更改且 EmployeeList 中不存在 Employee 之外,一切都运行良好,场景步骤如下。
  • EmployeeList 有 2 名员工, A先生 B先生和 SelectedValue 是 A先生
  • EmployeeList 已更改为 B先生 C先生 ,在此之后 SelectedValue 不再起作用。如果我在 ViewModel 上设置 Employee 并且 NotifyPropertyChanged 这个值不会在 UI 上更新,或者如果我从 UI 中选择新的 Employee 这个值不会在 ViewModel 上更新,底线是 View 并且 ViewModel 已断开连接,因为 EmployeeList 已更改而 Employee 没有存在于该列表中。

  • 我想知道如何解决这些问题?

    最佳答案

    我想你必须像下面这样绑定(bind)组合框:

    <ComboBox Grid.Row="5" Grid.Column="1" ItemsSource="{Binding Path=Employee,Mode=TwoWay}">
    <DataTemplate>
    <StackPanel>
    <TextBlock Height="8" HorizontalAlignment="Center" Text="{Binding Path=MR.A}"/>
    <TextBlock Height="8" HorizontalAlignment="Center" Text="{Binding Path=MR.B}"/>
    </StackPanel>
    </DataTemplate>
    </ComboBox>

    关于当 ItemsSource 更改时,Silverlight 4 ComboBox SelectedValue 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4263488/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com