2016-02-25 3 views
0

im begginer на C#, и у меня есть проблема.Имя «SongNameLabel» не существует в текущем контексте

Я получаю ошибки здесь:

songDetail = new SongDetailBind(MP3File.songName, ""); 
      SongNameLabel.DataContext = songDetail; 

Я пишу это здесь: общественный класс ControlPanel парциальное: UserControl но SongNameLabel является этикетка выполнена в BottomPanel.xaml и и класс его является общественным разделяемый класс BottomPanel: UserControl.

Как я могу получить доступ к SongNameLabel в классе ControlPanel?

+0

Вам понадобится разместить больше кода, а затем ... – Jacobr365

ответ

0

Вы можете сделать недвижимость или способ в классе BottomPanel, чтобы сделать эту метку доступной в классе ControlPanel.

public Label SongNameLabelProp 
{ 
    get 
    { 
     return SongNameLabel; 
    } 
} 

И тогда в ControlPanel, если у вас есть доступ к BottomPanel вы можете получить сделать:

BottomPanel.SongNameLabelProp.DataContext = songDetail; 

но в целом делают внутренние контролирующие доступную для других классов в плохой идее. Вы должны использовать некоторый структурный шаблон проектирования, такой как MVVM, и заполнять свои представления данными путем привязки данных. Или, по крайней мере, сделать способ в классе BootomPanel, например:

public void SetSongDetail(SongDetailBind songDetail) 
{ 
    SongNameLabel.DataContext = songDetail; 
} 
Смежные вопросы