Добавление класса в мой проект и доступ к элементам управления формы - PullRequest
0 голосов
/ 13 мая 2011

Я добавил файл класса в свой проект.Я хочу иметь доступ ко всем элементам управления форм в коде (сетка, текстовые поля, метки и т. Д.), Но у меня нет доступа к ним, как в основном.Нужно ли ссылаться на основной в добавленном классе?Это проект WPF!

Я оставил код, чтобы этот пост был небольшим:

namespace ClockMVC
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
    ClockViewModel model = new ClockViewModel();

    public MainWindow()
    {
        this.InitializeComponent();
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {

вот класс

namespace ClockMVC
{
class ClockViewModel : INotifyPropertyChanged
{
   // ClockViewModel model = new ClockViewModel();

    private readonly System.Timers.Timer _timer;

        public ClockViewModel()
        {

Ответы [ 2 ]

1 голос
/ 13 мая 2011

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

Обычно вы не используете элементы управления напрямую черезссылка в любом случае, так как большинство вещей выполняется через привязки, или вы можете получить элементы управления из соответствующих обработчиков событий (cast sender) и передать их методу в ViewModel, который имеет соответствующий параметр.Так как большая часть данных связана, вы, скорее, измените данные, и Просмотр обновлений сам по себе.

0 голосов
/ 13 мая 2011

Если вы хотите узнать, как связать видимость строки, как вы говорите в своем комментарии, попробуйте что-то вроде этого ...

// в модели представления .. создайте свойство видимости для вашей линии

Public Visibility Line1
{
    get
    {
        return m_Line1Visibility;
    }
    set
    {
    if(value != m_Line1Visibility)
        {
        m_Line1Visibility = value
        OnPropertyChanged("Line1");
        }
    }
}

по вашему мнению, сделайте что-то подобное

<Line Visibility = {binding path = Line1}/>

Теперь, когда вы хотите показать или скрыть строку 1, измените свойство, если привязки настроены правильно, все будет работать волшебным образом.

Например Line1 = Visibility.Hidden, чтобы скрыть и Line1 = Visibility.Visible, чтобы показать

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