Aradım ve bir çözüm görmedim.Araç İpucu Doğrulama Hatası Olmadığında Gösterilmiyor WPF
Bir onay kutusu araç kutusu özelliğinde bir araç ipucu ayarlamıyorsam, yalnızca ipucunu gösterecek şekilde doğrulama yapabilirim. Varsa, onaylama ipucu araç ipucunu görmek istiyorum, aksi takdirde araç ipucunu combobox özelliğinden gösterin. Doğrulama araç ipucu, metni araç ipucu özelliğinden (yani, birleşik giriş kutusunun özellik panelinden) kaldırdığımda iyi görünür.
doğrulama hatası göstermek ipucu için Application.Resources XAML (App.xaml) aşağıdaki gibi
<Style x:Key="StandardComboBoxStyle" TargetType="{x:Type ComboBox}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors)[0].ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>
Ayrıca Combobox'undan için bir onaylama şablon kullanmaktır. Bu, kullanıcı denetimi cs dosyasındaki UserControl.Resources bölümünde bulunur. Denetimin kendisi aşağıdaki gibi tanımlanmaktadır. Burada tanımlanmayan başka referanslar olduğunu unutmayın (ama umarım uygun değildir - sorularım varsa bana bildirmekten çekinmeyin).
<ComboBox x:Name="ExposureTime" SelectedValuePath="Content"
Text="{Binding ExposureTime, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, ValidatesOnExceptions=True}" IsEditable="True" Validation.ErrorTemplate="{StaticResource comboBoxValidationTemplate}"
HorizontalContentAlignment="Right" FontSize="18" Margin="136,47,462,0" Height="27" VerticalAlignment="Top" GotFocus="ComboBox_GotFocus_1" LostFocus="ComboBox_LostFocus_1" PreviewTextInput="ExposureTime_PreviewTextInput" Opacity="{Binding BackgroundOpacity, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" FontWeight="Thin" Style="{DynamicResource StandardComboBoxStyle}" SelectedValue="{Binding Mode=OneWay, ValidatesOnDataErrors=True, ValidatesOnExceptions=True}" IsTextSearchEnabled="False" ToolTip="My tooltip test.">
<ComboBoxItem Content="0.05"/>
<ComboBoxItem Content="0.1"/>
<ComboBoxItem Content="0.2" />
<ComboBoxItem Content="1" />
<ComboBoxItem Content="2" />
<ComboBoxItem Content="5" />
<ComboBoxItem Content="10" />
<ComboBoxItem Content="20" />
<ComboBoxItem Content="60" />
<ComboBox.IsEnabled >
<MultiBinding Converter="{StaticResource multiBooleanConverter}">
<Binding Path="NotPerformingExposure" UpdateSourceTrigger="PropertyChanged"/>Th
<Binding Path="NotPerformingFocusTest" UpdateSourceTrigger="PropertyChanged"/>
</MultiBinding>
</ComboBox.IsEnabled>
</ComboBox>
Teşekkürler! Toka
Büyük yanıta
Path=(Validation.Errors)[0].ErrorContent
değişen öneriyoruz başka notTrigger
ait
Value
özelliğini manipüle ederek bir hata olmadığı halde zaman aynısını yapabilirsiniz. Mükemmel çalışıyor - teşekkürler! – BuckHarika bir çözüm, ancak bunu her biri farklı bir araç ipucuna sahip olan farklı açılan kutulara uygulamak istersem ne yapmalıyım? Yani Combobox1 "Ben birim" araç ipucu ve ComboBox2 "Ben # 2" araç ipucu vardır. gibi bir şey tahmin ediyorum ama işe yaramıyor! –
Dave