WPF richtextbox detect changes
От: HotDog Швейцария www.denebspace.com
Дата: 06.06.16 12:32
Оценка:
Есть поле для редактирования текста (richtextbox) и кнопка с коммандой undo

        <StackPanel>
            <Button Command="{x:Static ApplicationCommands.Undo}"
                    CommandTarget="{Binding ElementName=Editor}"
                    Content="Undo"
                    HorizontalAlignment="Left"/>
            
            <RichTextBox x:Name="Editor" Width="300" Height="300" />
        </StackPanel>


Мне нужно узнать изменилось ли содержание richtextbox. Простейший свособ на мой взгляд это проверить IsEnabled у кнопки undo.
Во viewmodel обьявил

public bool IsDirty { get; set; }

и попытался повесить его на кнопку
        <StackPanel>
            <Button Command="{x:Static ApplicationCommands.Undo}"
                    CommandTarget="{Binding ElementName=Editor}"
                    Content="Undo"
                    HorizontalAlignment="Left"
                    IsEnabled="{Binding IsDirty, Mode=OneWayToSource}"/>
            
            <RichTextBox x:Name="Editor" Width="300" Height="300" />
        </StackPanel>

и не работает, сеттер у IsDirty никогда не вызывается.
Как нужно правильно это делать? Как узнать что содержимое richtextbox изменилось (textChanged event не подходит)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.