c # wpf значение доступа в столбце списка - PullRequest
0 голосов
/ 06 января 2011

У меня ListView привязан к XML. XAML выглядит так:

<ListView Name="patientsListView" ItemsSource="{Binding}" SelectionChanged="patientsListView_SelectionChanged">
    <ListView.View>
        <GridView x:Name="patientGrid">
            <GridViewColumn Header="PatientName" Width="Auto" DisplayMemberBinding="{Binding XPath=PatientName}" />
            <GridViewColumn Header="PatientAccountNumber" Width="Auto" DisplayMemberBinding="{Binding XPath=PatientAccountNumber}" />
            <GridViewColumn Header="DateOfBirth" Width="Auto" DisplayMemberBinding="{Binding XPath=DateOfBirth}" />
        </GridView>
    </ListView.View>
</ListView>

Когда нажата строка, я хочу сделать что-то:

private void patientsListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
        //do stuff
        MessageBox.Show();
        }

Если я нажму на строку, как мне получить доступ к значению в столбце по отдельности? При отладке я вижу в Locals в списке SelectedItems, что мои данные находятся в InnerText в представлении результатов для любого индекса, но я не знаю, как получить значение в коде.

Ответы [ 2 ]

1 голос
/ 06 января 2011

В режиме отладки выясните тип listview.SelectedItems, затем преобразуйте его в этот тип

var item = (ItemType)listview.SelectedItems

, чем вы можете получить желаемое значение, подобное этому

item.PatientName
1 голос
/ 06 января 2011
var patient = ((ListViewItem) sender).Content as Patient; //or whatever object type

Оттуда вы можете получить patient.PatientName и т. Д.

[РЕДАКТИРОВАТЬ] Теперь, когда я смотрю на это, я не уверен на 100%, что это будет работать в событии с измененным выбором. Но это будет работать для события щелчка строки.

Однако, если вы просто пытаетесь обновить другую часть пользовательского интерфейса, вы можете сделать что-то вроде этого:

<TextBlock Text="{Binding SelectedItem.PatientName,ElementName='patientGrid'}"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...