2013-07-17 2 views
1

У меня есть простой список с gridview, и я пытаюсь получить значения определенного столбца.Доступ к элементу ячейки сетки ListView

Мой XAML

<ListView SelectionMode="Single" Margin="10,10,0,0" x:Name="activos" Height="211" VerticalAlignment="Top" HorizontalAlignment="Left" Width="555" SizeChanged="activos_SizeChanged" SelectionChanged="activos_SelectionChanged" IsSynchronizedWithCurrentItem="True"> 
    <ListView.Resources> 
     <ResourceDictionary> 
      <Style x:Key="hiddenStyle" TargetType="GridViewColumnHeader"> 
       <Setter Property="Visibility" Value="Collapsed"/> 
      </Style> 
      <Style TargetType="{x:Type CheckBox}" x:Key="DataGridCheckBox"> 
       <Setter Property="HorizontalAlignment" Value="Center" /> <Setter Property="HorizontalContentAlignment" Value="Center" /> <Setter Property="IsEnabled" Value="False" /> <Setter Property="Margin" Value="11 3" /> <Setter Property="VerticalAlignment" Value="Center" /> <Setter Property="VerticalContentAlignment" Value="Center" /> <Setter Property="Width" Value="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type GridViewColumn}},Path=ActualWidth}" /> 
      </Style> 
     </ResourceDictionary> 
    </ListView.Resources> 
    <ListView.View> 
     <GridView x:Name="act_"> 
      <GridViewColumn Header="Code" Width="0" DisplayMemberBinding="{Binding coddiag}" HeaderContainerStyle="{StaticResource hiddenStyle}" /> 
      <GridViewColumn Header="Diagnóstico" Width="400" DisplayMemberBinding="{Binding diag}" /> 
      <GridViewColumn Header="Princip." Width="50"> 
       <GridViewColumn.CellTemplate> 
        <DataTemplate> 
         <CheckBox Style="{StaticResource DataGridCheckBox}" IsChecked="{Binding princi}" Focusable="False" IsHitTestVisible="False" Name="Complete" IsThreeState="False" BorderBrush="Black" Foreground="Black"></CheckBox> 
        </DataTemplate> 
       </GridViewColumn.CellTemplate> 
      </GridViewColumn> 
      <GridViewColumn Header="Fecha" Width="{x:Static System:Double.NaN}" DisplayMemberBinding="{Binding fecha, StringFormat='dd/MM/yyyy'}" /> 
     </GridView> 
    </ListView.View> 
</ListView> 

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

Я думал, что это будет что-то проще, как Грид [Row, Column] или что-то подобное ... но после того, как некоторые исследования, похоже, мне нужно будет использовать другие методы ...

ответ

1

Вы можете добавьте привязку ListView.SelectedItem к свойству вашей модели представления. Ваша модель будет отслеживать выбор изменений с этой точки. Поэтому, когда элемент seleted изменен, вы получаете новое значение в этом свойстве. Поэтому вы можете получить доступ к любому свойству (значение столбца) выбранного элемента в коде модели вашего представления.

Смежные вопросы