我正在编写一些程序,可以选择设备并稍后进行配置。我实现了列出所有设备的ListView。我喜欢默认选择第一个设备。怎么做?我尝试在StackOverflow和Google上找到几个解决方案,但没有运气。
这是我在XAML中的代码:
<ListView Name="lvdevices" Grid.Row="1" Margin="2" ItemsSource="{Binding devicelist}" SelectionMode="Single" SelectedItem="{Binding SelectedDevice}" DataContext="{Binding }">
<ListView.View>
<GridView x:Name="gridDevices">
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox Tag="{Binding ID}" IsChecked="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListViewItem}}, Path=IsSelected}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn x:Name="DeviceId" Header="DeviceId" DisplayMemberBinding="{Binding DeviceId}" Width="50"/>
<GridViewColumn x:Name="NameId" Header="NameId" DisplayMemberBinding="{Binding NameId}" Width="100"/>
<GridViewColumn x:Name="ManufacturerId" Header="ManufacturerId" DisplayMemberBinding="{Binding ManufacturerId}" Width="150"/>
</GridView>
</ListView.View>
</ListView>
我不知道如何实现连接时默认选择第一项。还有可能找不到任何设备,那么呢?请帮忙!如果有问题请询问。
答案 0 :(得分:5)
当您填充devicelist
时,您可以将SelectedDevice
设置为设备列表中的第一项,如果列表中没有任何内容,则设置为null
。
using System.Linq;
...
SelectedDevice = devicelist.FirstOrDefault();
假设SelectedDevice
实施INotifyPropertyChanged
,则应选择视图中的第一项。
答案 1 :(得分:0)
在您的ViewModel中,您只需将SelectedDevice
设置为第一项(当然会触发OnPropertyChanged
)