Visibility

 
0
 
.NET
ava
Garcian | 30.10.2012, 20:43
Здравствуйте. С WindForms перешел на WPF, из книги Мак-Дональда пока вынес немного (большая книжка), а сделать мне уже необходимо следующее:
Имеется Grid - на нем множество элементов. Есть ComboBox с двумя значениями. При выборе одного часть элементов скрываться, а часть появляться на их месте (соответственно, св-ва Visibility Colapsed Hidden Visible). По старой привычке делал так:

private void intCoding_Selected(object sender, RoutedEventArgs e)
{
tBoxGenome.Visibility = System.Windows.Visibility.Visible;
tBoxMin.Visibility = Visibility.Collapsed;
tBoxMax.Visibility = Visibility.Hidden;
}

private void floatCoding_Selected(object sender, RoutedEventArgs e)
{
tBoxGenome.Visibility = Visibility.Collapsed;
tBoxMin.Visibility = Visibility.Visible;
tBoxMax.Visibility = Visibility.Visible;
}


XAML

...
<ComboBox Grid.Row="3" Grid.Column="2" BorderBrush="#FF008700" Foreground="#FF26A326" Background="#1E006400" MaxDropDownHeight="100" Margin="2" Name="comboCoding" HorizontalContentAlignment="Center">
<ComboBoxItem Name="intCoding" Content="Целочисленное кодирование" Selector.IsSelected="True" HorizontalContentAlignment="Center" Selected="intCoding_Selected" />
<ComboBoxItem Name="floatCoding" Content="Вещественное кодирование" HorizontalContentAlignment="Center" Selected="floatCoding_Selected" />
</ComboBox>
...
<!--Лэйблы и текстбоксы видимы только для целочисленного кодирования-->
<Label Name="labInt" Grid.Column="0" Grid.Row="5" VerticalAlignment="Center" HorizontalAlignment="Center">Размер генома:</Label>
<TextBox Name="tBoxGenome" Grid.Column="1" Grid.Row="5" MaxWidth="100" HorizontalAlignment="Left" MinWidth="100" TextAlignment="Center" Text="5" MaxLength="2"></TextBox>

<!--Лэйблы и текстбоксы видимы только для вещественного кодирования-->
<Label Name="labFloatMin" Grid.Column="0" Grid.Row="5" VerticalAlignment="Center" HorizontalAlignment="Center" Content="Min значение генома:" Visibility="Collapsed"></Label>
<TextBox Name="tBoxMin" Grid.Column="1" Grid.Row="5" MaxWidth="100" HorizontalAlignment="Left" MinWidth="100" TextAlignment="Center" Text="0.000000" Visibility="Collapsed"></TextBox>
<Label Name="labFloatMax" Grid.Column="0" Grid.Row="6" VerticalAlignment="Center" HorizontalAlignment="Center" Visibility="Hidden">Max значение генома:</Label>
<TextBox Name="tBoxMax" Grid.Column="1" Grid.Row="6" MaxWidth="100" HorizontalAlignment="Left" MinWidth="100" TextAlignment="Center" Text="9.999999" Visibility="Hidden"></TextBox>



Подскажите, что в wpf за это отвечает, желательно с примером. Надеюсь на скорейший ответ, ибо тут обычно с ним не торопятся smile . Спасибо.
Comments (1)
ava
Garcian | 30.10.2012, 22:39 #
В общем ошибка, как мне кажется, в следующем. Первым делом загружается событие ComboBoxItem_IsSelected, и там ссылки на классы текстбоксов, которые еще не созданы. Если убрать изначально выбранный элемент в комбобоксе, то все работает. Вот так то...
Ну и да, это свойство можно добавить в WindowLoad или Init-ze, тоже все заработает smile
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
  Garcian
advanced
Submit