从所选列表视图项中获取id

时间:2018-06-05 10:50:52

标签: c# wpf data-binding

我有一个包含此数据模板的ListView:

id

但现在我希望在点击ListViewItem时获得第3个网格中第一个标签中的Rit rit1 = new Rit { id = 20, AantalPassagiers = 5, Naam = "Jan", TaxiNummer = 1 };

获取ID的最简单方法是什么?

我可以使用绑定将id绑定到其他标签吗? 或者我还需要做其他事情吗?

ObcRitten是一个公开的ObservableCollection,并且填充了Rit Rit的例子

{{1}}

3 个答案:

答案 0 :(得分:0)

您可以将SelectedItem属性转换为Rit并访问id属性:

Rit rit = lvRitten.SelectedItem as Rit;
if (rit != null)
    var id = rit.id;

您也可以将其直接绑定到TextBlock,如下所示:

<TextBlock Text="{Binding SelectedItem.id, ElementName=lvRitten}" />

答案 1 :(得分:0)

在ViewModel中创建新属性:

public Rit SelectedRit {get; set;}

然后使用ListView绑定此属性:

<ListView SelectedItem = "{Binding SelectedRit}"..../>

答案 2 :(得分:0)

DataTemplate中的所有元素共享相同的DataContext,即Rit项。要在不同位置显示id两次,您需要创建两个标签,并将两者绑定到id

<Grid Grid.Column="1" Grid.Row="1">
     <Label Content="{Binding id}" FontSize="10"/>
</Grid>
ListView之外的

绑定到ListView.SelectedItem:

<Label Content="{Binding SelectedItem.id, ElementName=lvRitten}" FontSize="10"/>