2010-09-24 2 views
7

Я работаю над небольшим проектом wpf, используя C#. У меня есть 2 окна. Когда я перехожу из одного окна в другое, мне нужно, чтобы некоторые элементы были предварительно выбраны во втором окне. У меня есть флажок, который должен установить значение на основе информации, которую я извлекаю из реестра. В первом окне у меня есть ссылка на второе окно. Как установить флажок для проверки, чтобы при открытии другого окна он уже был проверен?установка значения флажка программно в C# (wpf)

private void btnGoToNextWindow_Click(object sender, RoutedEventArgs e) 
    { 
      Window2 w2 = new Window2(); 

      //This doesn't work    
      w2.Checked = true; 

      w2.Show(); 
      this.Close(); 
    } 

ответ

11

Используя это:

 Window2 w2 = new Window2(); 

     //This doesn't work    
     w2.Checked = true; 

Вы установка Checked свойство окна а не управления. Это должно быть somehting так:

 Window2 w2 = new Window2();   
     w2.MyCheckBox.IsChecked = true; 
+1

Там нет Проверено собственности в WPF для Checkbox –

+2

w2.MyCheckBox.IsChecked = истина; (Это сработало отлично) –

4

Вы можете использовать IsChecked свойство.

Надеюсь, это поможет. Damian

+0

Спасибо, это было то, что я искал. Это сработало. –

+1

Пожалуйста, когда ответ полезен, отметьте его как ответ. Таким образом, другие люди могут легко это распознать, и тот, кто ответил на ваши вопросы, получает за это честь. –

+0

это лучший ответ, вы никогда не должны использовать код. это почти как hardcoding. – Kevin

-1

Я бы сказал, что вы должны двигаться в направлении толкания модели представления в вид через IoC или какой-либо другой способ. Свяжите значение с собственностью и позвольте структуре сделать вашу жизнь проще благодаря привязке, вместо того, чтобы иметь жесткие кодовые значения повсюду.

http://msdn.microsoft.com/en-us/library/ms752347.aspx

+0

Заблуждение. Имея переменную в модели представления, которая получает значение в значение, затем получает (даже через привязку) все еще «жесткие коды» к значению, только через сложный лабиринт getters-seters. Эта переменная по-прежнему должна быть установлена ​​изначально где-то - даже если из значения другого свойства. Почему бы не установить его прямо в поле, а не через чрезмерно раздутый способ установки/извлечения значения в/из переменной модели? DataBinding для чего-то такого простого действительно сверх-сверху. – vapcguy

Смежные вопросы