代码之家  ›  专栏  ›  技术社区  ›  David

当项源更改时,Silverlight 4组合框SelectedValue不工作

  •  1
  • David  · 技术社区  · 14 年前

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

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

    视图已设置其 ItemsSource SelectedValue 分别为EmployeeList和Employee的属性。

    ItemsSource="{Binding EmployeeList, Mode=TwoWay}"
    SelectedValue="{Binding Employee, Mode=TwoWay}"
    

    除了EmployeeList已经改变,员工在员工中不存在,一切都很好。

    1. 员工名单有2名员工, A先生 B先生 而SelectedValue是 A先生
    2. 员工列表已更改为 B先生 C先生 ,之后,SelectedValue不再工作。如果我将雇员设置在VIEW模型和NoTIFYPrimTyType上,这个值不会在UI上更新,或者如果我从UI中选择了新的雇员,这个值将不会在VIEWDEM上更新,底线是VIEW和VIEW模型被断开,因为EnvielListor已经改变,并且在该列表中不存在雇员。

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

    3 回复  |  直到 14 年前
        1
  •  2
  •   Ral Zarek John    12 年前

    我想您必须像下面这样绑定组合框:

    <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>
    
        2
  •  0
  •   Jaans    14 年前

    Silverlight 4组合框和SelectedValue绑定也有重大问题。奇怪的是,使用SelectedItem进行绑定非常有效,但这并不总是可行的,尤其是在使用域对象和FK Id类型查找时。

    看看我在CSLA论坛上的帖子吧-它解决了使用选定值时的大多数计时和绑定问题。

    http://forums.lhotka.net/forums/p/9786/45971.aspx

    希望能帮上忙

        3
  •  0
  •   David    14 年前

    我可以通过以下方法解决这个问题 Silverlight ComboBox Sample for RIA Services .