none
WPF IsEnabled abhängig von IsChecked RRS feed

  • Frage

  • Hallo zusammen

    Ich mache meine Ersten Schritte in WPF und habe hier noch Mühe damit. Vielleicht kann mit hier jemand einen Typ geben, wie man das richtig macht.

                <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="5,202,1,0" Grid.ColumnSpan="7">
                    <CheckBox x:Name="chkAbsage" HorizontalAlignment="Left" VerticalAlignment="Top" IsChecked="{Binding SelectedItem.Absage, ElementName=dgBewerbung}" Margin="54,2,5,0" Content="Absage" IsEnabled="{Binding IsChecked, ElementName=chkKeineAntwort}" />
                    <CheckBox x:Name="chkInterview" HorizontalAlignment="Left" VerticalAlignment="Top" IsChecked="{Binding SelectedItem.Interview, ElementName=dgBewerbung}" Margin="0,2,5,0" Content="Interview"/>
                    <CheckBox x:Name="chkKeineAntwort" HorizontalAlignment="Left" VerticalAlignment="Top" IsChecked="{Binding SelectedItem.KeineAntwort, ElementName=dgBewerbung}" Margin="0,2,5,0" Content="Keine Antwort" IsEnabled="{Binding IsChecked, ElementName=chkAbsage}"/>
                </StackPanel>
    


    • Ich möchte erreichen, dass wenn chkKeineAntwort gecheckt ist chkAbsage isEnabled=Fals ist
    • Ich möchte erreichen, dass wenn chkAbsage gecheckt ist, chkKeineAntwort isEnabled=False ist

    Leider funktioniert es nicht richtig. chkKeineAntwort und chkAbsage ist nun nicht aktiviert, wenn auch keines der beiden Checkboxen gecheckt ist.  chkAbsage ist nun deaktiviert wenn chkAbsage gecheckt ist. chkKeineAntwort ist deaktiviert wenn chkKeineAntwort gecheckt ist. Versucht habe ich es mit IsEnabled und einer Binding, wie es ganz am Ende der jeweiligen Zeile zu sehen ist.

    Sicher kann mir ein Profi sagen, wie man sowas richtig macht. Vielen Dank

    Marcel

    Montag, 9. September 2019 08:15

Antworten

  • Hi Marcel,
    da die Bindung zu negieren ist, benötigst Du einen Converter. In VB.NET kann dieser Converter so aussehen:

    Imports System.Globalization
    
    Public Class BoolConverter
      Implements IValueConverter
    
      Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
        If value IsNot Nothing AndAlso value.GetType Is GetType(Boolean) AndAlso targetType Is GetType(Boolean) Then
          Return Not CType(value, Boolean)
        End If
      End Function
    
      Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack
        Throw New NotImplementedException()
      End Function
    End Class

    Im XAML ist dann der Converter zu nutzen:

      <Window.Resources>
        <local:BoolConverter x:Key="conv"/>
      </Window.Resources>
    
    …
    
      <StackPanel Orientation="Horizontal" 
                  HorizontalAlignment="Stretch" 
                  VerticalAlignment="Top" 
                  Margin="5,202,1,0" 
                  Grid.ColumnSpan="7">
        <CheckBox x:Name="chkAbsage" 
                  HorizontalAlignment="Left" 
                  VerticalAlignment="Top" 
                  IsChecked="{Binding SelectedItem.Absage, ElementName=dgBewerbung}" 
                  Margin="54,2,5,0" 
                  Content="Absage" 
                  IsEnabled="{Binding IsChecked, ElementName=chkKeineAntwort, Converter={StaticResource conv}}"/>
        <CheckBox x:Name="chkInterview" 
                  HorizontalAlignment="Left" 
                  VerticalAlignment="Top" 
                  IsChecked="{Binding SelectedItem.Interview, ElementName=dgBewerbung}" 
                  Margin="0,2,5,0" 
                  Content="Interview"/>
        <CheckBox x:Name="chkKeineAntwort" 
                  HorizontalAlignment="Left" 
                  VerticalAlignment="Top" 
                  IsChecked="{Binding SelectedItem.KeineAntwort, ElementName=dgBewerbung}" 
                  Margin="0,2,5,0" 
                  Content="Keine Antwort" 
                  IsEnabled="{Binding IsChecked, ElementName=chkAbsage, Converter={StaticResource conv}}"/>
      </StackPanel>


    --
    Best Regards / Viele Grüße
    Peter Fleischer (former MVP for Developer Technologies)
    Homepage, Tipps, Tricks

    Montag, 9. September 2019 11:34

Alle Antworten

  • Hi Marcel,
    da die Bindung zu negieren ist, benötigst Du einen Converter. In VB.NET kann dieser Converter so aussehen:

    Imports System.Globalization
    
    Public Class BoolConverter
      Implements IValueConverter
    
      Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
        If value IsNot Nothing AndAlso value.GetType Is GetType(Boolean) AndAlso targetType Is GetType(Boolean) Then
          Return Not CType(value, Boolean)
        End If
      End Function
    
      Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack
        Throw New NotImplementedException()
      End Function
    End Class

    Im XAML ist dann der Converter zu nutzen:

      <Window.Resources>
        <local:BoolConverter x:Key="conv"/>
      </Window.Resources>
    
    …
    
      <StackPanel Orientation="Horizontal" 
                  HorizontalAlignment="Stretch" 
                  VerticalAlignment="Top" 
                  Margin="5,202,1,0" 
                  Grid.ColumnSpan="7">
        <CheckBox x:Name="chkAbsage" 
                  HorizontalAlignment="Left" 
                  VerticalAlignment="Top" 
                  IsChecked="{Binding SelectedItem.Absage, ElementName=dgBewerbung}" 
                  Margin="54,2,5,0" 
                  Content="Absage" 
                  IsEnabled="{Binding IsChecked, ElementName=chkKeineAntwort, Converter={StaticResource conv}}"/>
        <CheckBox x:Name="chkInterview" 
                  HorizontalAlignment="Left" 
                  VerticalAlignment="Top" 
                  IsChecked="{Binding SelectedItem.Interview, ElementName=dgBewerbung}" 
                  Margin="0,2,5,0" 
                  Content="Interview"/>
        <CheckBox x:Name="chkKeineAntwort" 
                  HorizontalAlignment="Left" 
                  VerticalAlignment="Top" 
                  IsChecked="{Binding SelectedItem.KeineAntwort, ElementName=dgBewerbung}" 
                  Margin="0,2,5,0" 
                  Content="Keine Antwort" 
                  IsEnabled="{Binding IsChecked, ElementName=chkAbsage, Converter={StaticResource conv}}"/>
      </StackPanel>


    --
    Best Regards / Viele Grüße
    Peter Fleischer (former MVP for Developer Technologies)
    Homepage, Tipps, Tricks

    Montag, 9. September 2019 11:34
  • Danke Pater

    Dies habe ich nun so gemacht. Allerdings gabe das bei mir einige Fehlermeldungen. Ich habe bemerkt, dass ich noch ein  xmlns:local="clr-namespace:Stellensuche" unter den anderen xmlns einfügen muss. Jetzt habe ich nur noch den Fehler Der Name "BoolConverter" ist im Namespace "clr-namespace:Stellensuche" nicht vorhanden.

    Wenn Du mir hier auch nochmals helfen könntest. Ich habe die Klasse BoolConverter wie folgt erstellt:

    Imports System.Globalization
    Imports System.Windows.Data
    Imports System
    
    Public Class BoolConverter
       Implements IValueConverter
    
       Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
          Return Not CType(value, Boolean)
       End Function
    
       Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack
          Throw New NotImplementedException()
       End Function
    End Class

    Also direkt unter dem Projektname. Trotzdem findet er diese Klasse nicht. Hast Du mir nochmals ein Typ?

    <Window xmlns:Controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Steuerelemente"  x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:Stellensuche"
            Title="Stellensuche" Height="700" Width="1000" Icon="..\Image\Application.ico">
        <Window.Resources>
           <local:BoolConverter x:Key="conv"/>
           <Style TargetType="{x:Type DataGridCell}" >
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type DataGridCell}">
                            <Grid Background="{TemplateBinding Background}">
                                <ContentPresenter VerticalAlignment="Center"/>
                            </Grid>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </Window.Resources>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="50"/>
                <RowDefinition Height="*"/>
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>
            <Label x:Name="lblSuchen" HorizontalAlignment="Left" VerticalAlignment="Top" Content="Suchen" Padding="5,1" Margin="5,5,0,0"/>
            <TextBox x:Name="txtSuchen" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="60,5,5,0" />
            <StackPanel x:Name="stpSuche" Orientation="Horizontal">
                <Button x:Name="btnSuchen" HorizontalAlignment="Left" VerticalAlignment="Top" Content="Suchen" Margin="60,26,5,0" Padding="5,1" IsEnabled="False" IsDefault="True"/>
                <Button x:Name="btnClear" HorizontalAlignment="Left" VerticalAlignment="Top" Content="Alle Anzeigen" Margin="0,26,5,5" Padding="5,1" IsEnabled="False"/>
                <CheckBox x:Name="chkSuchOffen" HorizontalAlignment="Left" VerticalAlignment="Center"  Margin="0,20,5,0" Content="Alle Offenen" />
                <CheckBox x:Name="chkSuchAbsagen" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0,20,5,0" Content="Alle Absagen" />
                <CheckBox x:Name="chkSuchInterview" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0,20,5,0" Content="Alle Interview" />
                <CheckBox x:Name="chkSuchKeineAntwort" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0,20,5,0" Content="Keine Antwort" />
            </StackPanel>
            <Grid x:Name="griEingabe" Grid.Row="1">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="245*"/>
                    <ColumnDefinition Width="70*"/>
                    <ColumnDefinition Width="10*"/>
                    <ColumnDefinition Width="74*"/>
                    <ColumnDefinition Width="22*"/>
                    <ColumnDefinition Width="95*"/>
                    <ColumnDefinition Width="479*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>
                <Label x:Name="lblDatum" HorizontalAlignment="Left" VerticalAlignment="Top" Content="Datum" Padding="5,1" Margin="5,5,0,0"/>
                <DatePicker x:Name="dpDatum" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="60,5,0,0" Padding="0" SelectedDate="{Binding SelectedItem.Datum, ElementName=dgBewerbung}"/>
                <Label x:Name="lblBemerkung" HorizontalAlignment="Left" VerticalAlignment="Top" Content="Bemerkung" Padding="0,1" Margin="11,5,0,0" Grid.Column="4" Grid.ColumnSpan="2" />
                <Label x:Name="lblFirma" HorizontalAlignment="Left" VerticalAlignment="Top" Content="Firma" Padding="5,1" Margin="5,26,0,0"/>
                <TextBox x:Name="txtFirma" VerticalAlignment="top" Height="80" Margin="60,26,0,0" TextWrapping="Wrap" AcceptsReturn="True" MaxLength="500" VerticalScrollBarVisibility="Visible" Text="{Binding SelectedItem.Firma, ElementName=dgBewerbung, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left" Width="342" Grid.ColumnSpan="5"/>
                <TextBox x:Name="txtBemerkung" HorizontalAlignment="Stretch" VerticalAlignment="Top" Height="80" TextWrapping="Wrap" AcceptsReturn="True" VerticalScrollBarVisibility="Visible" Margin="11,26,5,0" Text="{Binding SelectedItem.Bemerkung, ElementName=dgBewerbung, UpdateSourceTrigger=PropertyChanged}" Grid.Column="4" Grid.ColumnSpan="3"/>
                <Label x:Name="lblEmail" HorizontalAlignment="Left" VerticalAlignment="Top" Content="E-Mail" Padding="5,1" Margin="5,107,0,0"/>
                <TextBox x:Name="txtEmail" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="60,107,5,0" MaxLength="100" Text="{Binding SelectedItem.[E-Mail], ElementName=dgBewerbung, UpdateSourceTrigger=PropertyChanged}" Grid.ColumnSpan="7"/>
                <Label x:Name="lblTelefon" HorizontalAlignment="Left" VerticalAlignment="Top" Content="Telefon" Padding="5,1" Margin="5,126,0,0"/>
                <Controls:MaskedTextBox x:Name="txtTelefon" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="60,126,5,0" MaxLength="50" Maske="+41 00 000 00 00" Text="{Binding SelectedItem.Telefon, ElementName=dgBewerbung, UpdateSourceTrigger=PropertyChanged}" Grid.ColumnSpan="7"/>
                <Label x:Name="lblStelle" HorizontalAlignment="Left" VerticalAlignment="Top" Content="Stelle" Padding="5,1" Margin="5,145,0,0"/>
                <TextBox x:Name="txtStelle" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="60,145,5,0" MaxLength="150" Text="{Binding SelectedItem.Stelle, ElementName=dgBewerbung, UpdateSourceTrigger=PropertyChanged}" Grid.ColumnSpan="7"/>
                <Label x:Name="lblPfad" HorizontalAlignment="Left" VerticalAlignment="Top" Content="Pfad" Padding="5,1" Margin="5,164,0,0"/>
                <TextBox x:Name="txtPfad" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="60,164,50,0" MaxLength="200" Text="{Binding SelectedItem.Pfad, ElementName=dgBewerbung, UpdateSourceTrigger=PropertyChanged}" Grid.ColumnSpan="7"/>
                <Button x:Name="btnPfadAuswahl" Content="..." HorizontalAlignment="Right" Padding="5,1" Margin="0,164,27,38" Height="18" Grid.Column="6"/>
                <Button x:Name="btnPfadÖffnen" Content="" HorizontalAlignment="Right" Padding="5,1" Margin="0,164,5,38" Height="18" FontFamily="Webdings" Grid.Column="6"/>
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="60,185,5,0" Grid.ColumnSpan="7">
                    <TextBox x:Name="txtPortal" VerticalAlignment="Top" HorizontalAlignment="Left" Visibility="Collapsed" Text="{Binding SelectedItem.Portal, ElementName=dgBewerbung, UpdateSourceTrigger=PropertyChanged}"/>
                    <RadioButton x:Name="optJobs" Content="jobs.ch" HorizontalAlignment="Left" Margin="0,0,5,0" GroupName="Portal" />
                    <RadioButton x:Name="optJobroom" Content="job-room.ch" HorizontalAlignment="Left" Margin="0,0,5,0" GroupName="Portal"/>
                    <RadioButton x:Name="optXing" Content="xing.com" HorizontalAlignment="Left" Margin="0,0,5,0" GroupName="Portal"/>
                    <RadioButton x:Name="optJesus" Content="jesus.ch" HorizontalAlignment="Left" Margin="0,0,5,0" GroupName="Portal"/>
                    <RadioButton x:Name="optSozialinfo" Content="sozialinfo.ch" HorizontalAlignment="Left" Margin="0,0,5,0" GroupName="Portal"/>
                    <RadioButton x:Name="optExperteer" Content="experteer.ch" HorizontalAlignment="Left" Margin="0,0,5,0" GroupName="Portal"/>
                    <RadioButton x:Name="optIctjobs" Content="ictjobs.ch" HorizontalAlignment="Left" Margin="0,0,5,0" GroupName="Portal"/>
                    <RadioButton x:Name="optWork50" Content="work50.ch" HorizontalAlignment="Left" Margin="0,0,5,0" GroupName="Portal"/>
                    <RadioButton x:Name="optZeitung" Content="Zeitung" HorizontalAlignment="Left" Margin="0,0,5,0" GroupName="Portal"/>
                    <RadioButton x:Name="optAndere" HorizontalAlignment="Left" Margin="0,0,5,0" GroupName="Portal"/>
                    <TextBox x:Name="txtAndere" HorizontalAlignment="Left" Margin="0,0,5,0" Width="120" IsEnabled="False"/>
                </StackPanel>
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="5,202,1,0" Grid.ColumnSpan="7">
                    <CheckBox x:Name="chkAbsage" HorizontalAlignment="Left" VerticalAlignment="Top" IsChecked="{Binding SelectedItem.Absage, ElementName=dgBewerbung}" Margin="54,2,5,0" Content="Absage" IsEnabled="{Binding Path=IsChecked, ElementName=chkKeineAntwort, Converter={StaticResource conv}}" />
                    <CheckBox x:Name="chkInterview" HorizontalAlignment="Left" VerticalAlignment="Top" IsChecked="{Binding SelectedItem.Interview, ElementName=dgBewerbung}" Margin="0,2,5,0" Content="Interview"/>
                    <CheckBox x:Name="chkKeineAntwort" HorizontalAlignment="Left" VerticalAlignment="Top" IsChecked="{Binding SelectedItem.KeineAntwort, ElementName=dgBewerbung}" Margin="0,2,5,0" Content="Keine Antwort" IsEnabled="{Binding ElementName=chkAbsage, Path=IsChecked}"/>
                </StackPanel>
                <Button Grid.Row="1" x:Name="btnExportieren" Content="Exportieren" HorizontalAlignment="Right" Padding="5,1" Margin="0,0,5,0" Grid.Column="6" Height="20" VerticalAlignment="Top"/>
                <Button Grid.Row="1" x:Name="btnDrucken" Content="Drucken" HorizontalAlignment="Right" Padding="5,1" Margin="0,0,82,0" Grid.Column="6"/>
                <StackPanel Orientation="Horizontal" Grid.Row="1" Margin="5,0" Grid.ColumnSpan="7">
                    <Button x:Name="btnNeu" Content="Neu" HorizontalAlignment="Left" Padding="5,1" Margin="55,0,5,0" Height="20" VerticalAlignment="Top"/>
                    <Button x:Name="btnLöschen" Content="Löschen" HorizontalAlignment="Left" Padding="5,1" Margin="0,0,5,0"/>
                </StackPanel>
                <DataGrid x:Name="dgBewerbung" Grid.Row="2" Margin="5,5,5,4.5" AutoGenerateColumns="False" SelectionMode="Single" CanUserAddRows="False" Grid.ColumnSpan="7">
                    <DataGrid.Columns>
                        <DataGridTextColumn Header="BewerbungPK" Visibility="Hidden" Width="0" Binding="{Binding Path=BewerbungPK}" IsReadOnly="True"/>
                        <DataGridTextColumn Header="Datum" Width="Auto" Binding="{Binding Path=Datum, StringFormat={}{0:dd.MM.yyyy}}" IsReadOnly="True"/>
                        <DataGridTextColumn Header="Firma" Width="*" Binding="{Binding Path=Firma}" IsReadOnly="True"/>
                        <DataGridTextColumn Header="Bemerkung" Width="*" Visibility="Collapsed" Binding="{Binding Path=Bemerkung}" IsReadOnly="True"/>
                        <DataGridHyperlinkColumn Header="E-Mail" Width="Auto" Binding="{Binding Path=[E-Mail]}" IsReadOnly="True">
                            <DataGridHyperlinkColumn.ElementStyle>
                                <Style TargetType="TextBlock">
                                    <EventSetter Event="Hyperlink.Click" Handler="OnHyperlinkClick"/>
                                </Style>
                            </DataGridHyperlinkColumn.ElementStyle>
                        </DataGridHyperlinkColumn>
                        <DataGridTextColumn Header="Telefon" Width="Auto" Binding="{Binding Path=Telefon}" IsReadOnly="True"/>
                        <DataGridTextColumn Header="Stelle" Width="*" Binding="{Binding Path=Stelle}" IsReadOnly="True"/>
                        <DataGridTextColumn Header="Portal" Width="Auto" Binding="{Binding Path=Portal}" IsReadOnly="True"/>
                        <DataGridCheckBoxColumn Header="Interview" Width="60" Binding="{Binding Path=Interview}" IsReadOnly="True"/>
                        <DataGridCheckBoxColumn Header="Absage" Width="50" Binding="{Binding Path=Absage}" IsReadOnly="True"/>
                        <DataGridCheckBoxColumn Header="Keine Antwort" Width="90" Binding="{Binding Path=KeineAntwort}" IsReadOnly="True" />
                        <DataGridCheckBoxColumn Header="Pfad" Width="*" Visibility="Collapsed" Binding="{Binding Path=Pfad}" IsReadOnly="True"/>
                    </DataGrid.Columns>
                </DataGrid>
            </Grid>
            <StatusBar Grid.Row="2" />
            <StackPanel Orientation="Horizontal" Grid.Row="2" HorizontalAlignment="Stretch">
                <Label x:Name="lblInfo" HorizontalAlignment="Left"/>
            </StackPanel>
            <StackPanel Orientation="Horizontal" Grid.Row="2" HorizontalAlignment="Right">
                <Label x:Name="lblWurzel" HorizontalAlignment="Right" Margin="5,0"/>
                <Button x:Name="btnWurzel" HorizontalAlignment="Right" Content="..." Margin="2,5" Padding="5,1"/>
                <Label x:Name="lblDatei" HorizontalAlignment="Right" Margin="5,0"/>
                <Button x:Name="btnDatei"  HorizontalAlignment="Right" Content="..." Margin="2,5" Padding="5,1"/>
                <Button x:Name="btnNeueDB" HorizontalAlignment="Right" Content="Neue Datenbank" Margin="2,5" Padding="5,1"/>
                <Label x:Name="lblVersion" HorizontalAlignment="Right" Content="Version:"/>
            </StackPanel>
        </Grid>
    </Window>
    

    Danke und Gruss Marcel



    Montag, 9. September 2019 12:43
  • Also ich habe es herausgefunden. Das Fenster kann nur während der Entwicklungszeit nicht angezeigt werden. Das Programm läuft aber wie erwartet. Will man das Fenster zur Entwicklungszeit wieder sehen, muss man eine Zeile im XAML auskomentieren.

            <!--<local:BoolConverter x:Key="conv"/>-->
    
     

    Gibt dann aber so manche Fehlermeldung, so oft man conv verwendet hat. Nimmt man das Auskomentieren wieder zurück, erscheint nur noch eine Fehlermeldung für diese Zeile. Das Programm funktioniert aber einwandfrei.

    Gruss Marcel

    Montag, 9. September 2019 15:10
  • Hi Marcel,
    wenn sich die Klasse BoolConverter in der gleichen Assembly (Projekt) befindet und Du Änderungen am Projekt vornimmst, ist die Assembly ungültig und der Designer kann die Assembly für die Anzeige auch nicht nutzen. Wenn Dich das stört, kannst Du die Klasse BoolConverter in einer anderen Assembly (z.B. Klassenbibliothek) ablegen, diese dann fehlerfrei übersetzten und in der Hauptanwendung darauf verweisen. Danach arbeitet der Designer auch problemlos mit der BoolConverter Klasse, auch, wenn es im Hauptprogramm noch Fehler gibt.


    --
    Best Regards / Viele Grüße
    Peter Fleischer (former MVP for Developer Technologies)
    Homepage, Tipps, Tricks

    Montag, 9. September 2019 15:40