Как получить доступ к элементам в связанном списке, wp7 - PullRequest
0 голосов
/ 24 ноября 2010

У меня XAML для WP7:

<ListBox x:Name="lbMain" DataContext="{Binding}" ItemsSource="{Binding Items}">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel>
                    <TextBlock x:Name="txtName" Text="{Binding name}" />
                    <ListBox x:Name="lbCars" DataContext="{Binding}" ItemsSource="{Binding cars}" ScrollViewer.VerticalScrollBarVisibility="Disabled">
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <StackPanel x:Name="spnlCars">
                                    <TextBlock x:Name="txtCarName" Text="{Binding name}" />
                                    <ListBox x:Name="lbCarColor" DataContext="{Binding}" ItemsSource="{Binding color}">
                                        <ListBox.ItemTemplate>
                                            <DataTemplate>
                                                <TextBlock x:Name="txtColor" Text="{Binding colorValue}"/>
                                                <Image Name="imgColor"/>
                                            </DataTemplate>
                                        </ListBox.ItemTemplate>
                                    </ListBox>
                                </StackPanel>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

Мой DataContex настроен на созданную мной ViewModel, которая получает данные из веб-службы.Структура данных:

  • Машины (имеет: Транспортные средства [])
  • -Транспортные средства (имеет: имя, Автомобили [], Грузовые автомобили [], ...) ----вот что я привязываю к lbMain
  • - Автомобили (имеет: имя, цвет [], ...) ---- например, color [0] = "red"
  • --- colorValue

У меня также есть ресурсы изображений, которые я хочу поместить в imgColor.

Я не знаю, как это сделать:

  1. установить каждый imgColor для получения разных изображений из ресурсов в зависимости от txtColor,
  2. применить жирный шрифт к txtCarName, если (например) txtColor.Text = "red".

Я ценю любыесовет и любое предложение.

1 Ответ

2 голосов
/ 24 ноября 2010

Создайте Converter для преобразования имени цвета в BitmapImage.

Пример:

class ColorToImageConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        String colorName = (String)value;

        switch (colorName.ToLower())
        {
            case "red":
                return new BitmapImage(new Uri("..."));
            default:
                return new BitmapImage(new Uri("..."));
        }
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...