Veri içeriğini dinamik olarak kodda ayarlıyorum. Ekrandaki bir düğmenin DataContext == null
'a bağlı olup olmadığına bağlı olarak etkin/devre dışı olmasını istiyorum. Ben DataContext'i atamak zaman kodda bunu yapabiliyor ama böyle bağlayabilir eğer :)wpf DataContext varlığına nasıl bağlanır?
8
A
cevap
13
Sen DataContext
null olduğunda sizin düğmesini devre dışı bırakmayı düğme stili bir DataTrigger
kullanmak gerekir daha iyi olurdu. Diğer seçenek,özelliğini DataContext
'a bağlamak ve, DataContext
boşsa ve aksi takdirde true
değilse, bir değer dönüştürücüsünü kullanmaktır.
Dönüştürücü:
public class DataContextSetConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value != null;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Ve
<UserControl.Resources>
<local:DataContextSetConverter x:Key="dataContextSetConverter"/>
</UserControl.Resources>
...
<Button IsEnabled="{Binding Path=DataContext, RelativeSource={RelativeSource Self}, Converter={StaticResource dataContextSetConverter}}"/>
4
Bu yapmalıyım kullanın: dönüştürücü ile
<Button>
<Button.Style>
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=DataContext, RelativeSource={RelativeSource Self}}" Value="{x:Null}">
<Setter Property="IsEnabled" Value="false"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
: tetikleyici ile
<Button Content="ButtonName">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=DataContext}" Value="{x:Null}">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
İlgili konular
- 1. WPF: Set UserControl DataContext
- 2. DataContext boşsa veya WPF
- 3. C#/WPF: DataContext
- 4. DataContext değiştirildiği zaman Wpf olayı
- 5. WPF: Yuvalanmış bir özelliğe nasıl bağlanır?
- 6. WPF: Nesne ComboBox'a nasıl bağlanır
- 7. WPF Doğrudan DataContext ile Bağlantılı Bağlama Bağlama
- 8. WPF: Bir düğmenin IsEnabled özelliğine nasıl bağlanır
- 9. WPF ContextMenu woes: ContextMenu'nun DataContext özelliğini nasıl ayarlayabilirim?
- 10. ADO.NET Varlığına kısıtları nasıl ekleyebilirim?
- 11. WPF'de bir ListBoxItem nasıl bağlanır?
- 12. Pencerenin RelativeSource ile WPF Bağlama Yolda "DataContext" gerektirir?
- 13. MVVM Pattern, ViewModel DataContext soru
- 14. WPF
- 15. JDeveloper12c'den SVN Nasıl Bağlanır/Yeniden Bağlanır?
- 16. Silverlight - XAML'deki göreceli DataContext?
- 17. UserControls içinde DataContext
- 18. DataContext değiştiğinde bağlamanın güncellenmesi
- 19. DataTemplate veri türü arabirime nasıl bağlanır?
- 20. Structuremap DataContext nesnesinin atılması
- 21. DataGrid.RowStyle üzerinde DataContext Ayarı
- 22. StaticResource kullanarak XAML içinde DataContext nasıl tanımlanır
- 23. AWS Elasticsearch'a nasıl bağlanır?
- 24. Node.js - Akışa nasıl bağlanır
- 25. Tarantool'den mysql'ye nasıl bağlanır?
- 26. RibbonComboBox'ın SelectedItem'ine nasıl bağlanır?
- 27. Node.js'den nethack'e nasıl bağlanır?
- 28. AngularJS'de jsReport'a nasıl bağlanır?
- 29. WPF xaml formunu Design DataContext öğesini jenerik tip parametrelerini kullanan sınıfa nasıl ayarlayabilirim?
- 30. MS Moles ile Molding DataContext?
Böyle bir dönüştürücü nasıl görünebilir? – katit