Ho un StackPanel
che voglio rendere visibile solo quando SomeTabControl.SelectedItem != null
. Come posso farlo nel binding WPF?wpf databind IsVisible to TabControl.SelectedItem! = Null
risposta
si può fare senza un convertitore utilizzando uno stile e trigger:
<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>
Questo esempio mostra lo StackPanel di default, ma poi si nasconde quando il SelectedItem su TabControl1 è nullo.
Creare un convertitore che converte un valore nullable in un valore System.Windows.Visibility e utilizzarlo nell'associazione.
Per esempio:
<StackPanel x:Name="myPanel" Visibility="{Binding Path=SelectedItem, Mode=OneWay, ElementName=SomeTabControl, Converter={StaticResource visibilityConverter}}" />
Codice per la classe convertitore:
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
}
P.S. Ciò presuppone che nella XAML del tuo controllo sia presente una risorsa statica denominata visibleConverter.
È possibile utilizzare il built-in BoolToVisiblityConverter anziché scrivere il proprio. http://msdn.microsoft.com/en-us/library/system.windows.controls.booleantovisibilityconverter.aspx – Andy
In che modo BoolToVisibilityConverter può convertire! = null in Visibile? Se fosse vero o falso, lo capisco. Ma! = Null? – azazeal
- 1. Fragment IsVisible() vero quando non
- 2. WPF DataGrid - DataBind alla cella DataTable in CellTemplates DataTemplate
- 3. isDisplayed() vs isVisible() in selenio
- 4. NSData to NSString restituisce Null
- 5. DataBind e postback
- 6. Databind a dropdownlist
- 7. WPF binding to Listbox selectedItem
- 8. IO.Stream to Image in WPF
- 9. set head to NULL ('NULL': identificatore non dichiarato)
- 10. Utilizzando "Is Null/non NULL" in LINQ to SQL
- 11. WPF CommandParameter Valori MultiBinding null
- 12. Controllo personalizzato WPF: TemplateBinding to Image
- 13. WPF Bind Window Title to ViewModel Property
- 14. In WPF, come eseguire il databind su Window DataContext dall'interno del DataTemplate di un ListBox contenuto?
- 15. WPF - FindName restituisce NULL quando non dovrebbe
- 16. DataContext del controllo utente WPF è Null
- 17. DataBind Android - @BindingAdapter namespace app personalizzato ignorato
- 18. WinForms DataBind al di controllo visibile Proprietà
- 19. Differenza tra isElementPresent e isVisible in Selenium RC
- 20. Ordinamento Datagrid WPF su colonna con elementi null
- 21. JPA one-to-many delete e set foregn key to null
- 22. LINQ to Objects quando l'oggetto è null VS LINQ to SQL
- 23. How to I say Non è null in VBA
- 24. HQL con assegno Null per l'one-to-one rapporto
- 25. Handle Parse to Float, quando l'input è Null
- 26. DataBind listBox elemento selezionato per le caselle di testo
- 27. Rilegatura condizionale WPF. Button.IsEnabled to SelectedIndex> = 0
- 28. WinForms to WPF - Come ci arriviamo da qui?
- 29. Wpf Toolkit. Bind DataGrid Column Header to DynamicResource
- 30. WPF ComboBox SelectedValue binding con valore null viene visualizzato vuoto
Eccellente, grazie! –