こんにちは。
Class設計の具体例を教えてください。
MainWindowからRoomAWindowとRoomBWindowを開いています。
MainWindowで設定したModelsのPeopleクラスのNameをRoomAWindowとRoomBWindowで共通に使いたいです。
ひとつの方法は、
public string PersonName { get; set; }
を
public static string PersonName { get; set; }
とすることです。
これって一般的なのでしょうか?
現在のファイル構造と内容です。
よろしくご示唆ください。
└─Cherry
├─Cherry
│ ├─Models
│ │ ├─People.cs
│ │ └─Cherry.cs
│ ├─View
│ │ ├─MainWindow.xaml
│ │ ├─MainWindow.xaml.cs
│ │ ├─RoomAWindow.xaml
│ │ ├─RoomAWindow.xaml.cs
│ │ ├─RoomBWindow.xaml
│ │ └─RoomBWindow.xaml.cs
People.cs
C#
1namespace Cherry.Models{ 2 public class People{ 3 public string PersonName { get; set; } 4 } 5}
MainWindow.xaml
xaml
1<Window><Grid> 2<TextBox x:Name="personname"/> 3</Grid> 4</Window>
MainWindow.xaml.cs
C#
1namespace Cherry { 2 public class MainWindow : Window { 3 4 public MainWindow(){ 5 InitializeComponent(); 6 } 7 8 private void MainWindow_Loaded(object sender, RoutedEventArgs e) { 9 Models.People person = new Models.People(); 10 person.PersonName = "Cyndi Lauper"; 11 personnametextbox.Text = "Cyndi Lauper"; 12 } 13 14 private void RoomAButton_Click(object sender, RoutedEventArgs e) { 15 var roomAWindow = new RoomAWindow(this); 16 roomAWindow.Show(); 17 } 18 19 private void RoomBButton_Click(object sender, RoutedEventArgs e) { 20 var roomAWindow = new RoomAWindow(); 21 roomBWindow.Show(); 22 } 23 } 24}
RoomAWindow.xaml.cs
C#
1namespace Cherry { 2 public class RoomAWindow : Window { 3 MainWindow mainWindow; 4 public RoomAWindow(MainWindow mainwindow){ 5 InitializeComponent(); 6 mainWindow = mainwindow; 7 //ここでperson.PersonName(=="Cyndi Lauper")を取り出したい。 8 } 9 }
RoomBWindow.xaml.cs
C#
1namespace Cherry { 2 public class RoomBWindow : Window { 3 public RoomBWindow(){ 4 InitializeComponent(); 5 //ここでperson.PersonName(=="Cyndi Lauper")を取り出したい。 6 //PeopleクラスのPersonNameにアクセスするには、 7 People person = new People(); 8 string wantname = person.PersonName; 9 だが、これだと新規の名前(null)になる。 10 } 11 } 12}

回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/12 09:21
2016/08/12 10:01 編集