Как связать значение ключа динамического ресурса со значением столбца в таблице данных в wpf - PullRequest
2 голосов
/ 26 октября 2009

Я разрабатываю пользовательский элемент управления в wpf, где мне нужно установить цвет фона затмения в соответствии со значением в базе данных. Теперь это поле содержит значения от 1 до 6.

Теперь я хочу, чтобы в соответствии со значениями в этом поле мое затмение должно иметь другой цвет. Я определил 6 различных кистей в ресурсах. Их ключевые значения содержат от 1 до 6 цифр.

теперь я знаю, что могу найти ресурсы по ключу или имени, но не хочу этого. то, что я хочу, это когда я запускаю запрос в соответствии со значениями в столбце, динамическое значение ресурса должно быть установлено. Я не хочу выполнять какую-либо обработку, поэтому я могу напрямую связать значение динамического ресурса ...

если вам не понятен мой вопрос, пожалуйста, укажите, я поставлю свой код ...

Ответы [ 2 ]

3 голосов
/ 01 сентября 2010

Если у вас есть значение от 1 до 6, и вы знаете, какой стиль должен быть для каждого, вы должны просто установить стиль, который имеет метки данных для каждого значения (1-6) и установить любые значения внутри каждого триггера

<Window x:Class="WpfApplication8.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Window.Style>
    <Style TargetType="{x:Type Window}">
        <Setter Property="Background" Value="Pink" />
        <Style.Triggers>
            <DataTrigger Binding="{Binding ElementName=textbox, Path=Text}" Value="1">
                <Setter Property="Background" Value="Green"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding ElementName=textbox, Path=Text}" Value="2">
                <Setter Property="Background" Value="Red"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding ElementName=textbox, Path=Text}" Value="3">
                <Setter Property="Background" Value="Blue"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding ElementName=textbox, Path=Text}" Value="4">
                <Setter Property="Background" Value="Orange"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding ElementName=textbox, Path=Text}" Value="5">
                <Setter Property="Background" Value="Indigo"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding ElementName=textbox, Path=Text}" Value="6">
                <Setter Property="Background" Value="Violet"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</Window.Style>
<Grid Background="Transparent">
    <TextBox x:Name="textbox" Width="200" Height="30" />
</Grid>

1 голос
/ 04 января 2010

Я думаю, что мое расширение ResourceKeyBinding может помочь вам здесь. Это позволяет вам использовать привязку данных, чтобы указать ключ ресурса, который вы хотите использовать.

...