Можно ли обновить значение источника привязки данных с помощью набора TargetNullValue в случае, если оно равно «null»? - PullRequest
0 голосов
/ 08 апреля 2019

Просто из интереса ....

В случае, если у меня есть ViewModel с неинициализированной строкой, которая привязана к текстовому полю, я могу использовать TargetNullValue для отображения значения по умолчанию.Тем не менее, мне было интересно, могу ли я использовать то же значение для обновления строки в случае, если оно null?

В основном вместо

    set
    {
        if(value != null) text = value;
        else value = "defaultstring";
        OnPropertyChanged();
    }  

просто сделать то же самое из привязки данныхиспользуя TargetNullValue.

1 Ответ

1 голос
/ 08 апреля 2019

Вы можете манипулировать геттером, так как привязка данных будет использовать get ():

    private string text;

    public string Text
    {
        get
        {
            if (text== null)
                return "default value";
            else
                return this.text;
        }
        set { this.text= value; }

    }

Однако, если вы хотите сделать это в Pure XAML, вы можете использовать DataTrigger для этого:

<TextBlock Text="{Binding MyText}">
   <TextBlock.Style>
        <Style TargetType="{x:Type TextBlock }">
            <Style.Triggers>
                <DataTrigger Binding="{Binding MyText}" Value="{x:Null}">
                    <Setter Property="Text" Value="DefaultValue"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...