WPF, XAML: Как разработать использование ListBoxItem, привязывающее свойство объекта ListBox ItemsSource?

анализ Требований, спецификация, дизайн и документация почти никогда не будут вписываться в "шаблон". Вы - 100% времени, более обеспеченного путем запуска с пустого документа, и начиная вводить в целях "Я объясню это таким способом, которым, если бы я был мертв и кто-то еще прочитал этот документ, они знали бы все, что я знаю и вижу и понимаю теперь" и затем организующий оттуда, позволяя заголовкам раздела и такому разрабатывать естественно и соответствую задаче, которую Вы указываете, вместо того, чтобы быть ограниченными к некоторому бизнесу или идее школы того, на что должен быть похожим Ваш документ. Если необходимо сделать схему, вместо того, чтобы использовать чью-то формальную и непостижимую систему, Вы часто более обеспечены просто рисунок схема, которая имеет смысл с ясной легендой, которая на самом деле указывает систему, которую Вы пытаетесь указать, и передает информацию, которую должен получить разработчик на другом конце (часто Вы, после нескольких лет).

[Если Вы имеете к, после того как Вы записали реальную документацию, Вы часто можете рожок для обуви она в любую шаблонную смирительную рубашку, Ваша организация внушительна на Вас. Вы будете, вероятно, иметь необходимость, чтобы добавить заголовки раздела и копировать материал, все же.]

единственные шаблоны времени для этих видов документов имеют смысл, когда у Вас есть большое количество задач, которые очень похожи по своей природе, отличаясь только по деталям. "Запишите программу для предоставления доступа удаленного входа в систему единственного использования через этот модемный банк, управляя связью клеммного соединения с C-Kermit", "Производят историческую тенденцию и предсказывают отчет для полного использования", "Пользуются этой библиотекой, чтобы дать всем отчетам способность, которая будет отправлена факсом", "Исправляют этот код для проблемы 2000 года", и "Добавляют, что триггеры базы данных к этой таблице для заполнения программного продукта предусмотрели нас сторонним поставщиком", может не все быть описанным тем же шаблоном, какие люди могут думать. И для записи, требования и методы схематического изображения дизайна, которые мои классы колледжа попытались преподавать мне и моим одноклассникам, не могли использоваться для определения простой программы калькулятора (и все знали это).

16
задан Kirk 20 December 2012 в 21:23
поделиться

2 ответа

Используйте ItemContainerStyle :

<ListBox ItemsSource="{Binding LogMessages}">
    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="Background" Value="{Binding Severity, Converter={StaticResource YourBackgroundConverter}}"/>
        </Style>
    </ListBox.ItemContainerStyle>
</ListBox>
29
ответ дан 30 November 2019 в 17:15
поделиться

Как прокомментировал Боян, здесь не должно быть RelativeSource. Используйте {Binding Path = Severity, Converter = {StaticResource BackgroundSeverityConverter}} при привязке к объекту данных. RelativeSource.TemplatedParent предназначен для привязки к ListBoxItem.

Кроме того, что меня беспокоит, вы можете рассмотреть возможность использования триггеров, например:

<Style x:Key="BindingAlternation" TargetType="{x:Type ListBoxItem}">
    <Style.Triggers>
        <DataTrigger Binding="{Binding Severity}" Value="1">
            <Setter Property="Background" Value="Green"/>
        </DataTrigger>
        <DataTrigger Binding="{Binding Severity}" Value="2">
            <Setter Property="Background" Value="Yellow"/>
        </DataTrigger>
        <!-- etc.. -->
    </Style.Triggers>
<Style x:Key="BindingAlternation" TargetType="{x:Type ListBoxItem}">

Но это просто личное предпочтение .... то, что у вас есть, должно работать нормально если исправить привязку.

4
ответ дан 30 November 2019 в 17:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: