2009-10-29 1 views
1

Я могу легко изменять элементы управления и MessageBox в файле MainWindow.xaml.cs моего приложения WPF. Однако, когда я создаю несколько папок и добавляю туда классы, у меня больше нет доступа к MessageBox, и я не вижу имена элементов управления в раскрывающемся списке Intellisense.Доступ к свойствам MainWindow из других классов

(Это кажется вполне элементарно, но я новичок в C# и WPF)

ответ

1

делает ваши классы имеют право, используя заявление, что позволит вам получить доступ к классу, который вы пытаетесь получить доступ в новых классах вы Вы создали?

3

Возможно, вам не хватает пространства имен. Вы могли бы сделать что-то вроде этого:


MainWindow.cs:

using System; 
using System.Text; 
using System.Windows; 
using System.Windows.Controls; 

namespace YourNameSpaceHere 
{ 
    public partial class MainWindow : Window 
    { 
     internal static string message_ = string.Empty; 
     MainWindow() 
     { 
      InitializeComponent(); 
      SetupMessage(); 
     } 

     private void SetupMessage() 
     { 
      message_ = "Hello World!"; 
     } 
    } 
} 

OtherFile.cs:

using System; 
using System.Text; 
using System.Windows; 
using System.Windows.Controls; //are you missing this namespace? 
namespace YourNameSpaceHere 
{ 
     public class Messaging 
     { 
      Messaging() 
      { 
       MessageBox.Show(MainWindow.message_); 
      } 
     } 
} 

Обратите внимание, что я использую одно и то же пространство имен в каждом файле и с помощью внутреннего ключевого слова к сообщению можно получить доступ, если оно находится в одном и том же пространстве имен. Надеюсь, это поможет!

+0

У меня была эта проблема, и я использовал ответ Partial. Мне не хватало следующее пространство имен: using System.Windows.Controls; Кроме того, вам нужно использовать ключевое слово 'internal', как в примере Partial. – tone7