Я решил свою проблему с руководством JB Nizel и Suren Srapyan. Заменяя предмет поведения субъектом. Поскольку наблюдаемый подписан в конструкторе, он запускается и использует текущее сохраненное значение объекта поведения, которое ранее было установлено другой функцией.
Взял ссылку из Это SO Но теперь перед другим вопросом что openComposeBox вызывается и msg регистрируется, даже если наблюдаемый не подписан. Я буду обновлять ответ, когда получаю решение.
Вы должны использовать OpenFileDialog здесь.
Например,
var openFileDialog1 = new OpenFileDialog()
{
DefaultExt = "txt",
Filter = "txt files (*.txt)|*.txt",
}
openFileDialog1.ShowDialog();
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
filePath = openFileDialog1.FileName;
}
Свойство OpenFileDialog.Filter позволяет фильтровать файлы по расширению, которое в вашем случае равно «.txt».
Вы можете узнать больше о OpenFileDialog здесь