1

您好我正在开发一个带有 MVVM-light 的 WinRT 应用程序。我想做的是用物品填充组合框,例如 4 种水果。我的 SelectedItem 应该是组合框绑定的第一种水果。这可行,但下一步是我要更改 selectedIndex 。例如,当第一种水果售罄时,SelectedIndex 应自动更改为 Collection Of my Combobox 中的第二项。

因此,如果您想购买 10 个水果,您将在屏幕上获得 10 个组合框,您可以在其中选择水果的种类,当您在其中选择了 4 个苹果并且不再有苹果时,则其他组合框应更改为第二种水果。

我知道这是一个令人困惑的问题。

基本上我需要的是能够将我的 Selectedindex 绑定到集合中与我的组合框的集合不同的属性。我会给你一些xaml,希望能解释更多:

 </ListView>
   <ListView.ItemTemplate>
      <DataTemplate>
          <StackPanel IsHitTestVisible="{Binding HitTest}"  Orientation="Horizontal">
               <TextBlock Text="{Binding Day, Converter={StaticResource StringFormatConverter}, ConverterParameter='{}{0:dd MMM yyyy}' }"></TextBlock>
               <ComboBox Width="196"  ItemsSource="{Binding Path=FruitKind.FruitList, Source={StaticResource Locator}}" SelectedIndex="{Binding Path=FruitKind.FruitComboBoxItem, Source={StaticResource Locator}, ElementName={Binding Path=FruitIndex}}">
                  <ComboBox.ItemTemplate>
                     <DataTemplate>
                        <TextBlock Text="{Binding FruitKind}"/>
                     </DataTemplate>
                  </ComboBox.ItemTemplate>
              </ComboBox>
          </StackPanel>
     </DataTemplate>
   </ListView.ItemTemplate>
 </ListView>

顺便说一句,我不确定这是否可能。谢谢

4

1 回答 1

0

绑定到所选项目而不是索引。这允许您使用视图模型的对象/属性,您可以按照您想要的任何方式进行修改:

IE:

<ComboBox Width="196"  ItemsSource="{Binding Path=FruitKind.FruitList, Source={StaticResource Locator}}" SelectedItem="{Binding Path=FruitKind.FruitObject, Source={StaticResource Locator}, ElementName={Binding Path=FruitIndex}}">
于 2013-03-21T02:50:09.823 回答