データテンプレートを介して行を表示するリストビューがあります。アイテムを選択するとき、選択したアイテムを監視可能なコレクションに追加し、「CarIsSelected」の値をtrueに設定して、どちらが選択されているかを確認します。選択したアイテムの背景色を設定して、observablecollectionに追加する方法に問題がありますか?これが理にかなっていることを願っています。以下は私がこれまでに持っている私のコードです。別の例として、「item1」を選択した場合、コレクションに「item1」を追加し、「item1」の行を強調表示します。次に、「item2」を選択し、コレクションに「item2」を追加して、「item2」の行を強調表示します。したがって、「item1」と「item2」を強調表示する必要があります。
xaml:
<ListView Name="lstExistingProblemList" HorizontalAlignment="Left" VerticalAlignment="Bottom"
ItemsSource="{Binding Path=ListOfCars}" SelectedItem="{Binding SelectedCar}"
SelectionMode="Single" Width="391" Grid.ColumnSpan="2">
<ListView.ItemTemplate>
<DataTemplate>
<Label Width="391" Margin="0,0,5,0" HorizontalAlignment="Left">
<Label.Content>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}-{1}">
<Binding Path="Make" />
<Binding Path="Model" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</Label.Content>
</Label>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
ViewModel:
ObservableCollection<CarsInfo> selectedCarsLists = new ObservableCollection<CarsInfo>();
List<CarsInfo> listOfCars = new List<CarsInfo>();
CarsInfo selectedCar;
public List<CarsInfo> ListOfCars
{
get
{
listOfCars = DataSource.GetCarInfo();
return listOfCars;
}
}
public ObservableCollection<CarsInfo> SelectedCarsLists
{
get
{
return selectedCarsLists;
}
}
public CarsInfo SelectedCar
{
get
{
return selectedCar;
}
set
{
if (selectedCar != value)
{
selectedCar = value;
selectedCar.CarIsSelected = true;
selectedCarsLists.Add(selectedCar);
}
}
}
クラス:
public int Year { get; set; }
public string Description { get; set; }
public string Make { get; set; }
public string Model { get; set; }
public bool CarIsSelected { get; set; }