C# 正在从选定的listview项获取id
我有一个包含此数据模板的列表视图:C# 正在从选定的listview项获取id,c#,wpf,data-binding,C#,Wpf,Data Binding,我有一个包含此数据模板的列表视图: <ListView x:Name="lvRitten" Grid.Column="0" Background="Gold" ItemsSource="{Binding ObcRitten}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" SelectionChanged="lvRitten_SelectionChanged" SelectionMode="Single"> <
<ListView x:Name="lvRitten" Grid.Column="0" Background="Gold" ItemsSource="{Binding ObcRitten}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" SelectionChanged="lvRitten_SelectionChanged" SelectionMode="Single">
<ListView.ItemTemplate>
<DataTemplate DataType="{x:Type classes:Rit}">
<Button x:Name="btnride" Height="100" Width="132" >
<StackPanel>
<Grid Height="100" Width="132">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="3*"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" Grid.ColumnSpan="2" Background="Aquamarine">
<Label Content="naam"/>
</Grid>
<Grid Grid.Column="0" Grid.Row="1" Background="AntiqueWhite">
<StackPanel>
<Label Content="{Binding id}" FontSize="10"/>
<Label Content="{Binding Naam}" FontSize="10"/>
<Label Content="{Binding AantalPassagiers}" FontSize="10"/>
<Label Content="{Binding TaxiNummer}" FontSize="10"/>
</StackPanel>
</Grid>
<Grid Grid.Column="1" Grid.Row="1">
</Grid>
</Grid>
</StackPanel>
</Button>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
您可以将
SelectedItem
属性强制转换为Rit
并访问id
属性:
Rit rit = lvRitten.SelectedItem as Rit;
if (rit != null)
var id = rit.id;
您还可以将其直接绑定到TextBlock
,如下所示:
<TextBlock Text="{Binding SelectedItem.id, ElementName=lvRitten}" />
在ViewModel中创建新属性:
public Rit SelectedRit {get; set;}
然后将此属性与ListView绑定:
<ListView SelectedItem = "{Binding SelectedRit}"..../>
数据模板中的所有元素共享相同的数据上下文,即
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"/>
我是绑定新手,属性应该放在哪里?@Jeffrey在同一个类中,您的ObservableCollection在哪里我知道,但我需要列表视图之外的id,列表视图中还有更多项
<Label Content="{Binding SelectedItem.id, ElementName=lvRitten}" FontSize="10"/>