Когда мы используем DataContext другого элемента управления, мы можем получить доступ к его свойствам, таким как Значение ниже.
<ProgressBar x:Name="my_prog" Height="10" Value="{Binding Value, ElementName=my_slider}"/>
Но я растерялся, когда мы назначаем контекст данных из кода, не должны ли мы также получить доступ к его свойствам ? Но в приведенном ниже примере контекст данных представляет собой список автомобилей, но как мы можем получить доступ к свойству Speed
, которое принадлежит car
, а не list
? Этот пример правильно показывает скорость.
public partial class CarsView : Window
{
public CarsView()
{
InitializeComponent();
var cars = new List<Car>();
for (int i = 0; i < 10; i++)
{
Car car = new Car();
cars.Add(car);
car.Speed = i * 10;
}
this.DataContext = cars;
}
}
XAML
<Grid>
<ListBox x:Name="listBoxCars" ItemsSource="{Binding}" HorizontalAlignment="Left" Height="278" Margin="114,63,0,0" VerticalAlignment="Top" Width="252">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Speed}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>