У меня есть TextBox, вставленный внутри DataTemplate HubSection. Как мне управлять свойствами из кода в С#? Я хочу изменить свойство "Видимость",
<TextBox x:Name="NumeroTre" Text="3" Height="207.5" Margin="114.326,-50,113.506,0" FontSize="173.333" HorizontalAlignment="Center" RenderTransformOrigin="0.5,0.5" UseLayoutRounding="False" d:LayoutRounding="Auto" Visibility="Collapsed"/>
Вы находитесь в шаблоне данных, поэтому использование имени в значительной степени не может быть и речи. Вы все равно должны делать это MVVM :)
Итак, свяжите его. Visibility
- это перечисление, поэтому, если вы хотите привязать к bool
вам нужен конвертер:
<TextBox Visibility="{Binding SomeBoolProp, Converter={StaticResource BoolToVisibilityConverter}"/>
Конвертер супер прост:
public class BoolToVisibilityConverter : IValueConveter
{
public object Convert (...)
{
return ((bool)value) ? Visibility.Visible : Visibility.Collapsed
}
public object ConvertBack(...)
{
return Binding.DoNothing; //Or you could do the backwards conversion if you want
}
}
Если вы не знакомы с MVVM (Model, View, View Model), рассмотрите следующую статью: Используйте шаблон Model-View-ViewModel (MVVM)