Как передать управление из одного окна в другое без использования обработчика событий? - PullRequest
1 голос
/ 17 февраля 2011

Я новичок в программировании и нуждаюсь в разъяснении для следующего ...

У меня есть текстовое поле, в котором текст генерируется автоматически.Требование: если я теперь выделю текст в текстовом поле, должно открыться новое окно wpf .. (это нужно сделать с помощью команд wpf только для прикрепленного свойства / без событий)

Спасибо :) Ps, пожалуйста, дайтемне подробный код для ответа ..

1 Ответ

0 голосов
/ 17 февраля 2011

Это очень странное требование, но оно может быть выполнено с использованием поведения.Вот примерная разметка:

<Grid>
    <TextBox Text="This is some text">
        <i:Interaction.Behaviors>
            <local:NewWindowOnSelectBehavior/>
        </i:Interaction.Behaviors>
    </TextBox>
</Grid>

, и вот поведение, которое в демонстрационных целях показывает окно сообщения:

public class NewWindowOnSelectBehavior : Behavior<TextBox>
{
    protected override void OnAttached()
    {
        AssociatedObject.SelectionChanged += (s, e) =>
        {
            if (!string.IsNullOrEmpty(AssociatedObject.SelectedText))
                MessageBox.Show("New Window");
        };
    }
}

В этом примере используются поведения.Если вы не знакомы с поведением, установите Expression Blend 4 SDK и добавьте это пространство имен:

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"

и добавьте System.Windows.Interactivity в свой проект.

...