Обновите содержимое текстового поля, которое связано с источником данных, в зависимости от значения, которое помещается в текстовое поле источником данных - PullRequest
0 голосов
/ 01 мая 2011

У меня есть текстовое поле, которое привязано к службе данных, чтобы получить ее содержимое. На данный момент служба данных помещает число от 1 до 9 в это текстовое поле. То, что мне нужно сделать, основано на этом значении, заменить содержимое этого текстового поля строкой. Так, например, если исходное содержимое текстового поля было «1», вместо этого оно было бы заменено на «1 - Пример текста здесь»

Ниже приведен код определения текстового поля.

<StackPanel Margin="0,0,0,17" Width="432">
    <TextBlock Text="{Binding Category1}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextNormalStyle}"/>
    <TextBlock Text="{Binding Category2}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextNormalStyle}"/>
    <TextBlock Text="{Binding Category3}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextNormalStyle}"/>
</StackPanel>

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

Спасибо за вашу помощь

Ответы [ 2 ]

1 голос
/ 01 мая 2011

Вам нужно присвоить TextBlock имя, чтобы на него можно было ссылаться с помощью кода, чтобы что-то вроде приведенного ниже кода работало

 <TextBlock x:Name="tb1" Text="{Binding Category1}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextNormalStyle}"/>

if (tb1.Text == "something")
        {
            DoSomething();
        }
        else
        {
            DoSomethingElse();
        }
0 голосов
/ 01 мая 2011

Вы можете определить конвертер значений. Например:

public class IntToTextConverter : IValueConverter
{
    public object Convert(object value, Type targetType, 
        object parameter, CultureInfo culture)
    {
        // Do the conversion from int to Text
    }

    public object ConvertBack(object value, Type targetType, 
        object parameter, CultureInfo culture)
    {
        // Do the conversion from Text to int
    }
}

<Window x:Class="MyNamespace.Window1"
    ...
    xmlns:my="clr-namespace:MyNamespace"
    ...>
    <Window.Resources>
        <my:IntToTextConverter x:Key="converter" />
    </Window.Resources>
    <Grid>
        <TextBox Text={Binding Category1, Converter={StaticResource converter}}/>
    </Grid>
</Window>

Хорошая статья о преобразователях значений здесь

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