我有一個StackPanel
,我只想讓SomeTabControl.SelectedItem != null
可見。我如何在WPF綁定中做到這一點?wpf databind IsVisible to TabControl.SelectedItem!= null
9
A
回答
13
您可以使用樣式和觸發做到無需轉換器:
<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>
這個例子默認顯示的StackPanel,但然後隱藏它當tabControl1的的SelectedItem爲null。
5
創建一個轉換器,將可空值轉換爲System.Windows.Visibility值並將其用於綁定。
例如:
<StackPanel x:Name="myPanel" Visibility="{Binding Path=SelectedItem, Mode=OneWay, ElementName=SomeTabControl, Converter={StaticResource visibilityConverter}}" />
代碼轉換器類:
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
}
附:這假設在您的控件的XAML中有一個名爲visibilityConverter的靜態資源。
相關問題
- 1. FormView.FindControl()返回null直到DataBind()
- 2. WPF中的DataBind Listbox SubSelection
- 3. WPF - Databind滑塊值到StoryBoard?
- 4. databind entityframework ObjectSet <T> to gridcontrol(c#)
- 5. WPF - DataBind已TextBlock.Text到整數
- 6. ExpressMapper - null to string.Empty
- 7. WPF - Databind動態控件類型
- 8. databind WPF中WebBrowser的Source屬性
- 9. Databind InkCanvas Children
- 10. WPF Label to TextBox
- 11. null to listOf(),not null to listOf(value)in Kotlin in one liner?
- 12. WPF - 在我的自定義控件上覆蓋IsVisible
- 13. Databind listbox
- 14. LargeImages to WPF ListView port
- 15. LINQ to SQL與NULL值
- 16. Target unreachable,identifier'DatabaseOperation'resolved resolved to null
- 17. Null值在LINQ to SQL中
- 18. LINQ to SQL sum null值
- 19. Speech to text result = null error
- 20. GridView上的DataBind()慢
- 21. UIPopoverPresentationController isVisible是否等價?
- 22. WPF ItemContainerGenerator.ContainerFromItem返回null
- 23. ASP.NET Databind combobox
- 24. 上的DataBind
- 25. Databind a dropdownlist
- 26. Databind'不是'CrystalDecisions.Windows.Forms.CrystalReportViewer'
- 27. DataBind或DataBound
- 28. 的DataBind()在C#
- 29. GridView Databind不工作
- 30. WPF Toolkit Accordion - How To Data Bind
您可以使用內置的BoolToVisiblityConverter而不是編寫自己的。 http://msdn.microsoft.com/en-us/library/system.windows.controls.booleantovisibilityconverter.aspx – Andy 2009-07-21 11:13:12
BoolToVisibilityConverter如何將!= null轉換爲可見?如果它是真的或假的,我明白了。但是!= null? – azazeal 2009-07-21 11:14:41