J'ai un StackPanel
que je veux rendre visible seulement quand SomeTabControl.SelectedItem != null
. Comment est-ce que je fais ceci dans la liaison de WPF?wpf databind IsVisible à TabControl.SelectedItem! = Null
Répondre
Vous pouvez le faire sans un convertisseur en utilisant un style et déclencheur:
<StackPanel>
<StackPanel.Style>
<Style TargetType="{x:Type StackPanel}">
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger
Binding="{Binding SelectedItem,ElementName=tabControl1}"
Value="{x:Null}">
<Setter Property="Visibility" Value="Hidden" />
</DataTrigger>
<Style.Triggers>
</Style>
</StackPanel.Style>
</StackPanel>
Cet exemple montre l'StackPanel par défaut, mais cache lorsque le SelectedItem sur TabControl1 est nulle.
Créez un convertisseur qui convertit une valeur Nullable en valeur System.Windows.Visibility et utilisez-le sur votre liaison.
Par exemple:
<StackPanel x:Name="myPanel" Visibility="{Binding Path=SelectedItem, Mode=OneWay, ElementName=SomeTabControl, Converter={StaticResource visibilityConverter}}" />
Code de la classe de conversion:
public class VisibilityConverter : IValueConverter
{
#region [ IValueConverter ]
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if(value == null)
return System.Windows.Visibility.Collapsed;
return System.Windows.Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotSupportedException();
}
#endregion
}
post-scriptum Cela suppose que dans le XAML de votre contrôle se trouve une ressource statique nommée visibilityConverter.
Vous pouvez utiliser le BoolToVisiblityConverter intégré au lieu d'écrire le vôtre. http://msdn.microsoft.com/en-us/library/system.windows.controls.booleantovisibilityconverter.aspx – Andy
Comment BoolToVisibilityConverter peut-il convertir! = null en Visible? Si c'était vrai ou faux, je comprends. Mais! = Null? – azazeal
- 1. DataBind à une zone de texte dans WPF
- 2. WPF: SelectedValue toujours null
- 3. WPF Trigger non null
- 4. Databind Entiers
- 5. Winforms visible à la propriété DataBind
- 6. Databind Manuel dans Gridview Paging
- 7. DataBind et Postback
- 8. Propriété de dépendance WPF retournant toujours NULL
- 9. ASP: RadioButtonList Databind Objet Personnalisé
- 10. Databind une valeur à un en-tête gridviewcolumn?
- 11. Ajout de lignes à Gridview sans utiliser DataBind
- 12. WinForms DataGridView DataBind à la propriété de type/imbriquée complexe
- 13. Ajouter une nouvelle ligne à GridView sans DataBind
- 14. Databind ASP.NET Liste de ListItem à DropDownList question
- 15. WPF - Impossible de convertir '<null>' de type '<null>' taper 'System.Uri'
- 16. Obtenir ou définir l'accesseur de la propriété attachée ne se déclenche-t-il pas sur le databind? WPF
- 17. WPF Dynamic DataTemplate: GridView CellTemplate n'est pas null mais la propriété VisualTree est null
- 18. GridView aucune colonne présente même après DataBind()
- 19. GridView .DataBind RowDataBound ne pas tirer
- 20. expressions inline ou databind dans ASP.NET
- 21. Comment Databind une propriété dans une propriété
- 22. WPF: NavigationService est NULL après 2ème page visite
- 23. Comment convertir WPF MouseDevice.GetPosition (null) en coordonnées d'écran?
- 24. WPF Dispatcher Invoke la valeur de retour est toujours null
- 25. comparer un objet à null!
- 26. Quelle est l'inverse de la fonction DataBind() dans ASP .NET
- 27. Quand ShowDialog() renverrait null?
- 28. Pourquoi @ ($ null) est $ false, mais @ ($ null, $ null) est $ true?
- 29. Différence entre NULL et null dans PHP
- 30. Java Servlets: String null ou "null"
Excellent, merci! –