2012-03-19 4 views
0

Как получить элементы отображения элемента ItemsControl? Помечено текстовое значение текстового поля с использованием шаблона MVVM?Как получить выбранную стоимость товара?

<ListBox Margin="0,25,0,0" Grid.Row="3" ItemsSource="{Binding Path=ViewModelSearchResults}" SelectedItem="{Binding Path=SelectedCategoryViewModel, Mode=TwoWay}"> 
        <ItemsControl.ItemTemplate> 
         <DataTemplate > 
          <Grid> 
           <Grid.ColumnDefinitions> 
            <ColumnDefinition Width="*"/> 
            <ColumnDefinition/> 
           </Grid.ColumnDefinitions> 
           <TextBox Grid.Row="0" Grid.Column="0" Text="{Binding Path=CategoryName}" FontSize="14" FontWeight="Normal" /> 
           <TextBox Grid.Row="0" Grid.Column="1" Text="{Binding Path=CategoryID}" FontSize="14" FontWeight="Normal" Visibility="Hidden" /> 
          </Grid> 
         </DataTemplate> 
        </ItemsControl.ItemTemplate> 
       </ListBox> 

ответ

1

Как получить что-нибудь еще из Просмотров: привяжите его! Да, ItemsControl имеет SelectedItem, но ItemsControl сам по себе не имеет выбора. Вместо этого вы должны использовать что-то вроде ListBox.

+0

сейчас я использовал список с помощью этого кода: SelectedItem = "{Binding Path = SelectedCategoryViewModel, Mode = TwoWay}", но привязка не работает properly и переходит в бесконечный цикл. Где я делаю неправильно? @Snowbear – Tulsi

+0

Я использую этот код в viewmodel. private CategoryViewModel _CategoryViewModel; public CategoryViewModel SelectedCategoryViewModel { get {return_CategoryViewModel; } { if (_CategoryViewModel! = Значение) { SelectedCategoryViewModel = значение; OnPropertyChanged ("SelectedCategoryViewModel"); } } } @Snowbear – Tulsi

+1

@Tulsi В вашем сеттере вы снова используете сеттер вместо заднего поля. Найдите «SelectedCategoryViewModel» – Snowbear

1

Вы можете связать SelectedItem с собственностью и получить доступ к требуемым значениям через это свойство.