2013-10-07 3 views
0

Я делаю свое первое приложение для Windows Phone 7, и это почти сделано, за исключением вычисленного поля в моем списке.Пользовательское вычисленное поле в ListBox с привязкой данных

У меня есть одна база данных с идентификатором, именем и целым числом. Я использую шаблон MVVM. В зависимости от функции с некоторыми вычислениями, я хочу показать YES или NOT как значение первого поля моего ListBox, а второй столбец - простое имя. Как я могу показать первое поле?

Это мой код в данный момент (для ListBox):

<ListBox x:Name="lstPills" Grid.Row="1" ItemsSource="{Binding AllItems}"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <Grid HorizontalAlignment="Stretch" Width="440"> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="90" /> 
         <ColumnDefinition Width="*" /> 
        </Grid.ColumnDefinitions> 
        <Border Height="36" Width="60" CornerRadius="5" Background="Grey"> 
         <TextBlock Text="HERE GOES YES or NOT" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="28"/> 
        </Border> 
        <TextBlock 
         Text="{Binding Name}" 
         FontSize="{StaticResource PhoneFontSizeLarge}" 
         Grid.Column="1" 
         VerticalAlignment="Center"/> 
       </Grid> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 

И у меня есть класс с функцией, которая делает расчет (только пример):

public static bool isRight(int value) 
    { 
     return (Math.Abs(value) % 2 == 0 ? true : false); 
    } 

Is есть ли способ вызвать эту функцию с привязанным параметром в XAML, чтобы он отражал результат? Что-то вроде:

<TextBlock Text="isRight(Binding myvalue)"/> 

У меня также есть моя модель и модель ViewModel.

+0

Только для справок в будущем '(Math.Abs ​​(значение)% 2 == 0? True: false)' такое же, как '(Math.Abs ​​(значение)% 2 == 0)' – Marcelo

ответ

1

попробовать связывание этого isRight Свойство

private int _lookupValue; 
public bool isRight 
    { 
     get { 
     return (Math.Abs(_lookupValue) % 2 == 0 ? true : false); 
     } 
    } 

, если вы думаете, что это еще не appliable, то вы можете пойти с Converters.

+0

Великий человек, он работал идеально, чтобы установить правильное текстовое значение. Теперь возникает вторая проблема: я должен изменить цвет '' в зависимости от значения функции isRight, а также цвета переднего плана. Белый для истинного или черного для ложных. Как это можно сделать? Может быть, привязка другой переменной к значению «Background»? – Eagle

+0

Поиск значения привязки преобразователей. – JSJ

+0

Умм, вы говорите, что я могу использовать что-то вроде этого, например: 'Это? (Я сейчас дома, завтра попробую). – Eagle

Смежные вопросы