Привязать прямоугольник к значению - PullRequest
0 голосов
/ 04 октября 2010
<UserControl.Resources>

 <DataTemplate x:Key="MyCustomTemplate">
            <StackPanel Orientation="Horizontal">
                <Label Content="{Binding Path=ID}"/>
                <Rectangle Height="18" Width="20" />
            </StackPanel>
        </DataTemplate>
    </UserControl.Resources>

<Grid>
<ListBox x:Name="userListBox" Margin="10"/>
</Grid>

Код:

userListbox.ItemsSource = myservice.getvalue ();

Теперь, как мне связать цвет прямоугольника. GetValue возвращает список объектов, один из которых является целым числом, и я должен использовать это значение, чтобы определить цвет прямоугольника. Скажите, если object.item = 1 цвет = зеленый object.item = 2 color = red

Ответы [ 2 ]

2 голосов
/ 04 октября 2010

Используйте ValueConverter, информация здесь: http://blogs.msdn.com/b/bencon/archive/2006/05/10/594886.aspx

2 голосов
/ 04 октября 2010

Вы можете использовать триггер данных для достижения этого, например:

<DataTemplate x:Key="MyCustomTemplate">
    <StackPanel Orientation="Horizontal">
        <Label Content="{Binding Path=ID}"/>
        <Rectangle x:Name="rect" Height="18" Width="20" />
    </StackPanel>
    <DataTemplate.Triggers>
        <DataTrigger Binding="{Binding Path=object.item}" Value="1">
            <Setter TargetName="rect" Property="Fill" Value="Green"/>
        </DataTrigger>
        <DataTrigger Binding="{Binding Path=object.item}" Value="2">
            <Setter TargetName="rect" Property="Fill" Value="Red"/>
        </DataTrigger>
    </DataTemplate.Triggers>
</DataTemplate>

, а затем привязать значение для шаблонного элемента управления к выбранному элементу списка

  <Label ContentTemplate="{DynamicResource MyCustomTemplate}" Grid.Column="2" Content="{Binding ElementName=userListBox, Path=SelectedItem}"/>

или, еслиDateatePlate на самом деле для списка, то вы можете сделать это следующим образом:

<ListBox x:Name="userListBox" Margin="10" ItemTemplate="{DynamicResource MyCustomTemplate}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...