c # / WPF: сделать диалог для просмотра файлов - PullRequest
0 голосов
/ 06 мая 2009

Я новичок в WPF и пытаюсь создать свое первое настольное WPF-приложение с использованием VC # Express.

Я пытаюсь создать три открытых диалоговых окна с текстовыми полями, которые показывают указанный путь, если пользователь выбирает файл. Я нашел рабочий код для отображения диалогового окна одним нажатием кнопки, но как мне получить текстовое поле для обновления / привязки к пути к файлу?

Что-то похожее на то, как работают поля ввода файлов в HTML, было бы идеально.

...

EDIT:

Хорошо, я прочитал пост чуть ниже моего и нашел решение ...

А как насчет перенаправления вывода консоли в текстовое поле?

Ответы [ 2 ]

1 голос
/ 06 мая 2009

Чтобы ответить на ваш вопрос о перенаправлении вывода консоли:

Вам будет лучше изменить код, чтобы запустить событие со строкой, которую вы хотите вывести. Затем в пользовательском интерфейсе добавьте обработчик для этого события, а в обработчике обновите текстовое поле.

Чтобы объявить событие, добавьте что-то вроде этого кода в ваш класс обработки:

public event EventHandler<StringEventArgs> Process_Message;

где StringEventArgs - класс, основанный на EventArgs, который упаковывает сообщение для отправки.

Чтобы запустить событие, добавьте что-то вроде этого кода в ваш класс обработки:

Process_Message(this, new StringEventArgs(message));

Чтобы добавить обработчик сообщений в ваш класс пользовательского интерфейса:

process.Process_Message += Process_Message;

Чтобы обработать событие, добавьте что-то вроде этого кода в ваш класс пользовательского интерфейса:

private void Process_Message(object sender, StringEventArgs e)
{
     Action action = () => UpdateStatus(e.Message);
     {
         Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, action);
     }
     else
     {
            action();
     }         
}

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

Затем метод UpdateStatus:

private void UpdateStatus(string message)
{
    statusTextBox.Text = message;
}

Очевидно, вам нужно будет переименовать вещи в соответствии с вашим приложением.

Поиск событий и EventArgs в MSDN.

0 голосов
/ 06 мая 2009

Если я вас правильно понимаю Используйте FileDialog.FileName для полного пути .. и привяжите его к вашему текстовому полю. 76mel

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