Почему TargetNullValue обновляет обнуляемый источник

TargetNullValue должен обновить привязкуTarget когда связываниеSource оцениваетnull:

Получает или задает значение, которое используется в цели, если значение источника равно нулю.

В дополнение к этому, кажется, установитьSource вnull (если возможно), когда значениеTarget равно даноTargetNullValue, Другими словами, он эффективно устанавливает эквивалентность междуnull иTargetNullValue стоимость имущества. Однако это не упоминается в документации вообще.

Смотрите этот пример:

<Window x:Class="WPF_Sandbox.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WPF_Sandbox"
        Title="MainWindow"
        x:Name="ThisControl">
    <StackPanel x:Name="MainStackPanel">
        <TextBox x:Name="MyTextBox" Text="{Binding NullableInt, ElementName=ThisControl, TargetNullValue='', UpdateSourceTrigger=PropertyChanged}" />
    </StackPanel>
</Window>


public partial class MainWindow : Window
{
    private int? nullableInt;

    public int? NullableInt
    {
        get { return nullableInt; }
        set { nullableInt = value; }
    }

    public MainWindow()
    {
        InitializeComponent();
    }
}

Замечания:UpdateSourcetrigger устанавливается только для облегчения тестирования и не имеет никакого отношения к рассматриваемому эффекту.

Если вы установите точку останова вNullableIntсеттер, вы можете видеть, что он срабатывает (сvalue == null) когда вы меняетеTextBox содержание для''.

Это недокументированное поведениеTargetNullValue или здесь есть какой-то другой побочный эффект?

Изменить: я наткнулся на эту тему, потому что я смотрел на этот вопрос:
Установите значение null в привязке WPF

Ответы на вопрос(1)

Ваш ответ на вопрос