Silverlight: Как использовать конвертер с ItemsControl? - PullRequest
2 голосов
/ 09 декабря 2010

У меня есть ItemsControl, ItemsSource которого связан со списком идентификаторов ints.Конвертер использует идентификаторы для поиска имени, которое должно отображаться пользователю.Как я могу сделать это в XAML?Вот что у меня есть, но это не работает:

    <ItemsControl ItemsSource="{Binding Topics}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding FallbackValue='topic name', Converter={StaticResource topicToStrConverter}}" Margin="0,10,0,0"/>
                    <Button>
                        <Image Source="/PlumPudding;component/Images/appbar.cancel.rest.png" />
                    </Button>
                </StackPanel>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>

Действительно, в качестве аргумента для конвертера я хочу использовать весь элемент, отображаемый в шаблоне, а не свойствоэтого предмета.Какой синтаксис для этого?

Я использую Silverlight 4.

Ответы [ 3 ]

0 голосов
/ 09 декабря 2010

если Topics - это List, то то, что вы имеете, является правильным.

Однако, если Topics - это List, а Id является свойством класса Topic, вам нужно будет использовать «Path = Id».Итак: {Binding FallbakcValue = 'Bla', Path = Id, Converter = {StaticResource yourConverter}

Чтобы ответить на ваш второй вопрос: "то, что я хочу в качестве аргумента для конвертера, это весь элемент, которыйотображается в шаблоне, а не в свойстве этого элемента "

Этот синтаксис, который вы используете, будет передавать весь объект в списке, поэтому в вашем случае int передается конвертеру.Опять же, если это список, объект Topic передается конвертеру.

0 голосов
/ 09 декабря 2010

Вы должны установить DataContext для элемента управления элементов или для одного из его родителей.Если вы этого не сделаете, для привязки не будет контекста.

0 голосов
/ 09 декабря 2010

Ваш код соответствует моему мнению ..

Кажется, проблема в «конвертере». Попробуйте отладить код topicToStrConverter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...