Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Maliko
Thema: SqlDataSource findet den Datenprovider nicht
Am im Forum: Web-Technologien

Deine Lösung hätte mir in diesem Fall nix gebracht, da sich die DataSources ja in den ASPX-Dateien befunden haben. Im Code-Behind mache ich es genauso wie du auch gesagt hast. Da erstelle ich direkt eine Connection. Nur funktioniert die halt nicht im "Frondend". Da muss man mit der Factory arbeiten (zumindest wenn ich das jetzt richtig verstanden habe). Und das eintragen der Factory in der web.config hat ja auch die Lösung gebracht. Jetzt läuft das System fast einwandfrei. Ich muss lediglich noch ein paar letzte Querys umschreiben, welche mit Postgresql nicht kompatibel sind (sprich aus getdate() current_date machen und sowas).

EDIT: Falls übrigens sonst noch mal jemand über das Problem stolpert. Folgendes Snippet muss in die web.config:


<system.data>
  <DbProviderFactories>
    <add name="Npgsql Data Provider" invariant="Npgsql" description=".Net Data Provider for PostgreSQL" type="Npgsql.NpgsqlFactory, Npgsql, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7"/>
  </DbProviderFactories>
</system.data>
Quelle: Installation | Npgsql Documentation

Thema: SqlDataSource findet den Datenprovider nicht
Am im Forum: Web-Technologien

Jup. Die Anwendung ist knapp 15 Jahre alt. Da es aber halt nur ne einfache Informationsplattform ist, bekomme ich auch keine Kapazitäten dafür das Ding komplett neu zu machen (vor allem da ASP auch nicht mein Spezialgebiet ist). Über die eingedeutschten Fehlermeldungen bin ich regelmäßig am Fluchen, leider ist das ein Firmenrechner, auf dem halt alles vorinstalliert war. Das mit der Providerfactory werd ich mal ausprobieren.

Tatsächlich hab ich bisher gar keine Anleitung für den Provider gefunden. Hab halt geschaut welchen Provider ich über Nuget registrieren muss und habs dann einfach durch ausprobieren umgesetzt. Hat bisher auch sehr gut geklappt. Nur an dieser Stelle bin ich dann leider hängen geblieben.

Ich probier das jetzt mal über die ProviderFactory und melde mich dann noch mal obs funktioniert hat oder nicht.

EDIT: Scheint funktioniert zu haben. Zumindest bekomme ich jetzt ne PostgresException, dass ich nen Syntaxfehler habe (was wie im Startpost schon geschrieben habe daran liegt, dass ich die Queries selbst noch nicht angepasst habe.

Thema: SqlDataSource findet den Datenprovider nicht
Am im Forum: Web-Technologien

Hey,

ich bin gerade dabei unser "Intranet" (eigentlich ist es nur eine kleine Webseite wo News stehen und man sich für Veranstaltungen anmelden kann) von MSSQL auf Postgresql umzustellen (wir ziehen gerade sämtliche Projekte auf ein einheitliches Datenbanksystem, vorher hatten wir Postgresql, MSSQL und MySQl) und stoße dabei ein ein sehr merkwürdiges Problem

Wenn ich ganz normal über die Code-Behind-Datei versuche eine Datenbankabfrage zu machen funktioniert alles einwandfrei. Ich kann die Daten abrufen und bekomme auch ein ergebnis. Versuche ich das aber über die ASPX-Seite mittels einer SQLDataSource dann bekomme ich folgende Fehlermeldung:

Fehler
[ArgumentException: Der angeforderte .Net Framework-Datenprovider kann nicht gefunden werden. Er ist ggf. nicht installiert.]
System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) +157
System.Web.UI.WebControls.SqlDataSource.GetDbProviderFactory() +66
System.Web.UI.WebControls.SqlDataSource.GetDbProviderFactorySecure() +22
System.Web.UI.WebControls.SqlDataSource.CreateConnection(String connectionString) +12
System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +95
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +17
DevExpress.Web.Internal.DataHelper.PerformSelect() +203
DevExpress.Web.Internal.GridDataHelper.PerformSelect() +285
DevExpress.Web.Internal.DataContainer.PerformSelect() +136
DevExpress.Web.ASPxDataWebControlBase.DataBindCore() +13
DevExpress.Web.ASPxDataWebControlBase.DataBindInternal() +109
DevExpress.Web.ASPxWebControl.DataBind() +37
DevExpress.Web.Internal.DataHelperBase.EnsureDataBound(Boolean ensureChildControls) +59
DevExpress.Web.Internal.DataContainer.EnsureDataBound() +142
DevExpress.Web.ASPxDataWebControlBase.OnPreRender(EventArgs e) +22
System.Web.UI.Control.PreRenderRecursiveInternal() +166
System.Web.UI.Control.PreRenderRecursiveInternal() +236
System.Web.UI.Control.PreRenderRecursiveInternal() +236
System.Web.UI.Control.PreRenderRecursiveInternal() +236
System.Web.UI.Control.PreRenderRecursiveInternal() +236
System.Web.UI.Control.PreRenderRecursiveInternal() +236
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4712

In der web.config ist der Server aber korrekt hinterlegt (wie schon gesagt, über die Code-Behind funktioniert es auch). Habe ich irgendwie noch ein Assambly vergessen, welches ich über Nuget installieren muss, bzw. muss ich in der Web.config noch irgendwas zusätzlich konfigurieren?

Derzeit habe ich als Verbindung zur Datenbank lediglich folgendes in der Web.config stehen:

<connectionStrings>
    <add name="MainConnectionString" connectionString="Server=127.0.0.1;Port=5432;Database=Intranet;User Id=Intranet;Password=XXX" providerName="Npgsql" />
</connectionStrings>

Als Konfiguration der DataSource benutze ich folgenden Code:


<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:MainConnectionString %>" ProviderName="<%$ ConnectionStrings:MainConnectionString.ProviderName %>" DeleteCommand="query" InsertCommand="query" SelectCommand="query" UpdateCommand="query">
    [. .. Diverse Parameter ... ]                                   
</asp:SqlDataSource>

Nicht wundern, dass bei den Commands nur query steht, die wirklichen Querys habe ich rausgenommen, damit das ganze etwas übersichtlicher wird (vor allem funktionieren die auch gar nicht, da die noch nicht auf postgres umgeschrieben wurden.

Kann mir da wohl vielleicht irgendjemand bei meinem Problem weiterhelfen? Mir fällt nämlich so langsam nix mehr ein.

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Was auch ganz Praktisch wäre, wäre eine Möglichkeit PMs direkt in der Übersicht löschen zu können (gerne auch mehrere auf einmal). Momentan muss man bei jeder PM erst mal in die PM rein um sie zu löschen (es sei denn ich bin Blind und hab die Funktion nicht gefunden).

Thema: Redirect bei Postback mit ASP WebForms
Am im Forum: Web-Technologien

Jup. Viele Chefs kapieren es leider nicht dass es auch nachteile hat bestehende Systeme nicht zu modernisieren. Ich hätte das Portal gerne komplett neu gemacht, allerdings bekomme ich dafür nicht die Zeit. Chef ist der Meinung es läuft doch und das reicht. Da kann man auch nicht mit ihm drüber reden. Und zum Thema überholt. Die Hauptsoftware die von meinen Kollegen und mir Entwckelt wird (reine Inhouseapplication) ist knapp 20 Jahre alt und basierte bis Mitte letzten Jahres noch auf Delphi 7.

Thema: Redirect bei Postback mit ASP WebForms
Am im Forum: Web-Technologien

Ahhhh. Danke dir. Das kommt davon wenn man sich ASP selbst neben der eigentlichen Arbeit beibringt. Da fehlen einem dann solche Kenntnisse.

Zitat von Abt
PS: es war auch bei WebForms noch nie eine gute Idee die Session als Store für Data aus der UserAuthentication zu missbrauchen ;-)

EDIT: Sag das meinem Vorgänger. Ich darf mich damit jetzt nur rumärgern, seit der gekündigt hat.

Thema: Redirect bei Postback mit ASP WebForms
Am im Forum: Web-Technologien

Moin,

ich hab da ein kleines Problem. Und zwar habe ich eine relativ alte ASPX-Webseite, welche ich betreuen muss (zum Neumachen fehlt leider die Zeit). Ich bekomme dabei immer mal wieder folgende Exception in meinen Fehlerlog rein:

Fehler
System.ApplicationException: Response.Redirect kann in einem Page-Rückruf nicht aufgerufen werden.
bei System.Web.HttpResponse.Redirect(String url, Boolean endResponse, Boolean permanent)
bei System.Web.HttpResponse.Redirect(String url)
bei Namespace.Klasse.Page_Load(Object sender, EventArgs e) in C:\Pfad\Klasse.aspx.cs:Zeile 39.
bei System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
bei System.Web.UI.Control.OnLoad(EventArgs e)
bei System.Web.UI.Control.LoadRecursive()
bei System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Bei der entsprechenden Zeile handelt es sich um einen Redirect auf die Login-Seite, wenn die Session des Benutzers abgelaufen ist. Leider passiert es immer mal wieder das der Benutzer sehr lange auf der Seite bleibt und dann versucht mit abgelaufener Session eine Funktion aufzurufen, welche einen Postback macht. Da tritt dann diese Fehlermeldung auf. Ich habe es sowohl mit Response.Redirect als auch mit Server.Transfer versucht, bei beiden kommt die Fehlermeldung.

Hier auch mal eben die Zeilen 37 - 40:


if (Session["userid"] == null)
{
    Response.Redirect("Default.aspx");
}

Hat jemand von euch einen Rat für mich wie ich den User auch bei einem Postback auf die Loginseite schicken kann?

Danke schon mal im Vorraus.

Viele Grüße
Maliko

Thema: Warum stürzt Applikation mit NullReference Exception ab?
Am im Forum: Web-Technologien

Moin,

nope wir sind nicht auf Azure und das wird unsere Geschäftsleitung auch nicht zulassen. Wir verwenden außer für diese eine Application überhaupt keine Microsoft-Assoziierten Sprachen oder Dienste die nicht von uns selbst gehostet werden.

Von daher kommt die Keyvault sowieso nicht in Frage. Bei der Application handelt es sich lediglich um unsere Kundenportale (für jede Firma des Konzerns eines). Alleine dadurch wäre eine eigene API schreiben mit Kanonen auf Spatzen zu schießen. Wir haben unser eigenes Rechenzentrum und die Server stehen direkt nebeneinander. Sprich die Latenzen sind so gering, dass die zusätzlichen Datenbankzugriffe keine wirkliche Auswirkung haben werden.

Nur um mal eben für klarheit zu schaffen.

Thema: Warum stürzt Applikation mit NullReference Exception ab?
Am im Forum: Web-Technologien

Zitat von Abt
Hört sich nicht gerade nach einem ordentlichen Entwicklungsprozess an, wenn ihr quasi so eine Änderung ohne Update (und daher ohne Quellcodeverwaltungsystem?) hinbekommt ;-)

Ich glaub da hast du mich falsch verstanden. Natürlich muss ich die Änderung mit einem Update machen. Es geht nur darum dass die Datenbankverbindungen jederzeit ohne Update geändert werden können müssen (sprich ein Austauschen der Connectionstrings). Natürlich arbeiten wir mit Versionierung (SVN).

Thema: Warum stürzt Applikation mit NullReference Exception ab?
Am im Forum: Web-Technologien

Zitat von Abt
Würde man so in PHP auch niemals tun.

Da gebe ich dir absolut recht. Ich werd das ganze jetzt auch vernünftig umbauen. Eine statische Verwaltung will unser PO nicht, aber wir handeln dass jetzt über eine zentrale Datenbank auf die immer zugegriffen wird, welche dann den ensprechenden Connectionstring zurückgibt. Ist zwar auch nicht optimal, aber die einzige Lösung die mir einfällt OnTheFly die Zugangsdaten der Datenbankserver ändern zu können ohne die Application an sich zu updaten.

Thema: Warum stürzt Applikation mit NullReference Exception ab?
Am im Forum: Web-Technologien

Zitat von Abt
Der Connection String kann dynamisch sein, wenn man die Datentrennung pro User / Tenant auf physikalischer Ebene umsetzt. Da hilft einem die Config nicht.

Das ist in diesem Fall auch so. Wir haben eine Application die je nachdem welche Domain aufgerufen wird einen anderen Datenbankserver aufruft. Von daher bringt uns die Config nichts.
Zitat von Abt
Sicher ist jedoch, dass die Art und Weise nur krachen kann und ein grober Programmierfehler ist:
Sessions sind kein statischer Speicher sondern laufen aus. Sie also für ein statisches Feld zu nutzen ist ein richtig dicker Patzer.
nur eine Frage der Zeit, bis die Session hier Null ist und damit bei einem Zugriff eine NullReferenceException geworfen wird..

Und das ist das merkwürdige. Die Session wird automatisch auf der Loginseite gefüllt. Sprich auf der Seite auf der man zuvor war. Sprich die befüllung ist nicht mal eine Minute vorher. Liegt das daran dass Sessions in ASP.Net unzuverlässiger sind als in PHP? Weil anders kann ich es mir nicht vorstellen, dass ein und der selbe Code nach dem Neustarten der Application wieder funktioniert.

Aber ja, dann werde ich wohl mal die Zeit investieren müssen und das System komplett umbauen (ich hoffe dass ich sie bekomme). Das ist leider etwas dass sich durch die komplette Application zieht und von meinem Vorgänger so implementiert wurde. Hoffen wir mal dass ich das Zeitkontingent dafür bekomme.

Thema: Warum stürzt Applikation mit NullReference Exception ab?
Am im Forum: Web-Technologien

Moin,

es hat leider bis heute gedauert bis die Seite mal wieder komplett abgeschmiert ist und jetzt habe ich auch endlich eine vernünftige Fehlermeldung über den Server bekommen. Nur wirklich weiter bringt diese mich nicht.

Die Meldung lautet:

Fehler
[NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.]

Die Codezeile die mir dabei angezeigt wird ist folgende:

public static string connetionStringtestdb = System.Web.HttpContext.Current.Session["connectionstring1"].ToString();

Die Session wird direkt beim Betreten der Seite gesetzt und funktioniert auch. Auf der Hauptseite bekomme ich nämlich keine Fehler obwohl er sachen aus der Datenbank ausliest.

Der Fehler tritt erst nach dem Login auf. Nachdem ich jetzt den Applicationpool neugestartet habe funktioniert es auch wieder. Ich bin da gerade etwas ratlos woran das liegen kann (vor allem da ich wie schon gesagt das Projekt auch nur zwangsweise übernommen habe).

Thema: Warum stürzt Applikation mit NullReference Exception ab?
Am im Forum: Web-Technologien

Moin,

ich hoffe hier kann mir jemand weiterhelfen. Meine ASP-Kenntnisse sind nur rudimentär und reichen gerade mal dazu aus unsere Seite weiterzuentwickeln (ich bin zu der Aufgabe wie die Jungfrau zum Kinde gekommen, da der Kollege, der das Ding ursprünglich entwickelt hat gekündigt hat und ich der einzige bin, der zumindest in der Ausbildung mal mit ASP in Berührung gekommen ist).

Und zwar habe ich momentan das Problem dass ständig die Webseite komplett abschmiert. Sprich die Seite kann noch aufgerufen werden, doch sobald man versucht sich einzuloggen landet man auf der Fehlerseite weil irgendeine Exception geworfen wird, ich weiß aber nicht welche, da das Problem bei mir local nicht auftritt und die Exceptions vom Server unterdrückt werden.

Das einzige was dann noch hilft ist den kompletten Applicationpool einmal neu zu starten. Hat vielleicht irgendjemand von euch eine Ahnung woran das liegen könnte? Weil ich hab davon nicht die geringste Ahnung und weiß nicht einmal wonach ich da suchen muss. Wenn jemand von euch ein paar Tipps hat, wonach ich mal schauen könnte um das Problem zu lokalisieren wäre ich euch schon sehr dankbar.

Wie schon gesagt, ich hab seit fast 10 Jahren kein ASP mehr wirklich gemacht und stümper hier momentan nur rum um das Ding überhaupt betreuen zu können. Ich bin inzwischen eigendlich eher im Bereich Java und Delphi aktiv. Von daher würde ich mich über ein paar Tipps sehr freuen.

Thema: [erledigt] Assembly kann beim Compiling nicht gefunden werden
Am im Forum: GUI: WPF und XAML

OK, Fehler ist behoben. Die Antwort ist ganz einfach. Meine Projektmappe beinhaltet 4 Projekte. Das Assembly habe ich in das Projekt eingebunden, welche das Assembly nutzt. Allerdings da es sich um ein Erweiterungs-Assembly handelt muss dieses auch noch in das Projekt eingebunden werden, welches als Startprojekt angegeben ist. Solange das nicht passiert, crasht das System.

Thema: [erledigt] Assembly kann beim Compiling nicht gefunden werden
Am im Forum: GUI: WPF und XAML

Lokale Kopie steht per Default beim Projekt auf True. Ich habs aber auch schon versucht abzuschalten, bringt aber auch nichts. Der Pfad, auf den die Assembly verweist ist folgender:

Zitat
C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.0\Libraries\System.Windows.Interactivity.dll

Thema: [erledigt] Assembly kann beim Compiling nicht gefunden werden
Am im Forum: GUI: WPF und XAML

Hoi,

ich hab gerade ein etwas merkwürdiges Problem. Ich versuche momentan gerade ein Event auf ein Command umzuleiten um das Event im ViewModel behandeln zu können. Darum habe ich das Assembly System.Windows.Interactivity im Projekt eingebunden und im XAML den entsprechenden Namespace angelegt.

Er kann im Designer die Assembly auch finden und zeigt mir auch die entsprechende Intillisence an. Wenn ich jetzt aber versuche das Projekt zu starten, bekomme ich folgende Fehlermeldung:

Fehler
Die Datei oder Assembly "System.Windows.Interactivity, PublicKeyToken=31bf3856ad364e35" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.

Die Assembly ist allerdings im Projekt referenziert (hab nachgeschaut) und im XAML hab ich sie wie folgt eingebunden:
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"

Das hier ist der Code, welchen ich für die Umleitung verwende:

<i:Interaction.Triggers>
    <i:EventTrigger EventName="SelectionChanged">
        <i:InvokeCommandAction Command="{Binding Path=InitAnlagenzuordnung}" CommandParameter="{Binding Path=SelectedLeistungserbringer}" />
    </i:EventTrigger>
</i:Interaction.Triggers>

Ich steh hier gerade etwas auf dem Schlauch, da das nur passiert wenn ich versuche das Projekt zu starten. Wenn ich die Projektmappe komplett neu erstellen lasse, bekomme ich keine Fehler angezeigt. Der Fehler wird mir auch nicht im Fehlerbereich von Visual Studio angezeigt sondern nur sobald ich versuche das Projekt zu starten.

Jemand eine Idee was da los sein könnte?

Lg
Maliko

Thema: [erledigt] ListView ItemsSource wann gefüllt?
Am im Forum: GUI: WPF und XAML

Die Fliegt auch noch raus. Ist momentan nur ne Übergangslösung, da die Daten derzeit noch über die ObservableCollection kommen. Das wird aber noch umgestellt und dann fliegt auch die ObservableCollection raus.

Thema: [erledigt] ListView ItemsSource wann gefüllt?
Am im Forum: GUI: WPF und XAML

Weil als das ganze noch nicht MVVM war, dort das Objekt gefüllt war.

Ich habs inzwischen allerdings komplett umgestellt. Der Filter ist ebenfalls ins ViewModel gewandert (so wie es sich auch gehört).

View:


<TextBox Width="200" Margin="0,0,0,5" x:Name="tb_Search" Text="{Binding Path=FilterValue, UpdateSourceTrigger=PropertyChanged}"/>
<ListView Grid.Row="1" Name="lv_Leistungserbringer" SelectionChanged="lv_Leistungserbringer_SelectionChanged" ItemsSource="{Binding Path=LeistungserbringerCollection}" Height="150" VerticalAlignment="Bottom">
    <ListView.View>
        <GridView>
            [...] <!-- Hab die Columns mal rausgenommen wegen Platz-->
        </GridView>
    </ListView.View>
</ListView>

ViewModel:


//Die Datenquelle
private ObservableCollection<ILeistungserbringer> _Leistungserbringer;
public ObservableCollection<ILeistungserbringer> Leistungserbringer
{
    get { return this._Leistungserbringer; }
    set 
    { 
        this._Leistungserbringer = value;
        this._LeistungserbringerCollection = CollectionViewSource.GetDefaultView(this.Leistungserbringer);
        this._LeistungserbringerCollection.Filter = this.Filter;

        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs("Leistungserbringer"));
    }
}

//Die Collection der Datenquelle, die gebunden wird
private ICollectionView _LeistungserbringerCollection;
public ICollectionView LeistungserbringerCollection
{ 
    get { return this._LeistungserbringerCollection; }
}

//Der Filterbegriff
private string _FilterValue;
public string FilterValue
{
    get { return this._FilterValue; }
    set
    {
        this._FilterValue = value;

        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs("FilterValue"));

        this._LeistungserbringerCollection.Refresh();
    }
}

//Die Filtermethode
private bool Filter(object item)
{
    if (item != null)
    {
        if (String.IsNullOrEmpty(this._FilterValue))
            return true;
        else
        {
            int test;
            int.TryParse(this._FilterValue, out test);

            if (test == 0)
                return ((item as ILeistungserbringer).Beschreibung.IndexOf(this._FilterValue, StringComparison.OrdinalIgnoreCase) ≥ 0);
            else
                return ((item as ILeistungserbringer).ID.ToString().IndexOf(this.FilterValue, StringComparison.OrdinalIgnoreCase) ≥ 0);
        }
    }
    else
        return false;
}

Thema: [erledigt] ListView ItemsSource wann gefüllt?
Am im Forum: GUI: WPF und XAML

Hoi,

ich hab da gerade ein kleines Problem und stehe auf dem Schlauch. Vielleicht könnt ihr mir da ein wenig weiterhelfen.

Und zwar habe ich eine ListView, welche ich mit Daten fülle. Die Daten werden auch angezeigt, wenn ich dann allerdings versuche ne Filterung zu bauen, habe ich das Problem, dass das ItemsSource-Property der ListView wenn das DataContextChanged-Event feuert noch null ist. Ich hab mal geschaut ob in ItemsSource überhaupt was drin ist und wenn ich im SelectionChanged-Event nen Breakpoint setze ist ItemsSource auch gefüllt.

Nun zu meiner Frage. Welches Event nutze ich am besten um die CollectionView für die ListView zu definieren (da DataContextChanged ja scheinbar zu früh ist).

Hier der Code so wie ich ihn derzeit habe:

View:


<ListView Grid.Row="1" Name="lv_Leistungserbringer" DataContextChanged="lv_Leistungserbringer_DataContextChanged" SelectionChanged="lv_Leistungserbringer_SelectionChanged" ItemsSource="{Binding Path=Leistungserbringer}" Height="150" VerticalAlignment="Bottom">
    <ListView.View>
        <GridView>
            [...] <!-- Hab die Columns mal rausgenommen wegen Platz-->
        </GridView>
    </ListView.View>
</ListView>

CodeBehind:


private void lv_Leistungserbringer_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
{
    CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(lv_Leistungserbringer.ItemsSource);
    view.Filter = this.Filter;
}

private bool Filter(object item)
{
    if (String.IsNullOrEmpty(tb_Search.Text))
        return true;
    else
    {
        int test;
        int.TryParse(tb_Search.Text, out test);

        if (test == 0)
            return ((item as ILeistungserbringer).Beschreibung.IndexOf(tb_Search.Text, StringComparison.OrdinalIgnoreCase) ≥ 0);
        else
            return ((item as ILeistungserbringer).ID.ToString().IndexOf(tb_Search.Text, StringComparison.OrdinalIgnoreCase) ≥ 0);
    }
}

Das Binding der Source läuft über ein ViewModel ab, welches an den DataContext gebunden wurde.

Kann mir da vielleicht jemand nen Anstoß geben wo ich da ansetzen muss?

Danke schon mal im Vorraus.

LG
Maliko

Thema: [erledigt] DataGrid - Zeilenfarbe zur Spalte [zur Laufzeit ändern] - XAML
Am im Forum: GUI: WPF und XAML

Klar ist das möglich. Du benötigst lediglich nen Bool oder was auch immer, den du abfragen kannst. Dann kannst du ganz normal den Bool mit nem DataTrigger (oder auch MultiDataTrigger) abfragen und für die entsprechende Row die Hintergrundfarbe ändern.

Thema: [erledigt] Control aktivieren über Trigger
Am im Forum: GUI: WPF und XAML

Weil ich euch nur einen Auszug gezeigt habe. Das ist nicht der einzige Trigger. Darum Trigger und darum Style.

Thema: [erledigt] Control aktivieren über Trigger
Am im Forum: GUI: WPF und XAML

Sowas in der Art habe ich schon vermutet gehabt, konnte nur leider nix entsprechendes finden. Stand in meinem WPF-Buch leider auch nicht drin. Danke dir für die Info.

Thema: [erledigt] Control aktivieren über Trigger
Am im Forum: GUI: WPF und XAML

Hoi,

ich hab da mal ne Frage an euch. Und zwar habe ich gemerkt, das es Probleme gibt, wenn man versucht ein Steuerelement mit einem Trigger zu aktivieren, wenn dieses per Default auf Disabled gesetzt wurde.

Umgekehrt gibt es da aber kein Problem. Ich meine Folgendes:

Funktioniert:


<DatePicker SelectedDate="{Binding ElementName=StandartPitBis, Path=SelectedDate}">
    <DatePicker.Style>
        <Style TargetType="DatePicker">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=IsChecked}" Value="False">
                    <Setter Property="IsEnabled" Value="False" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DatePicker.Style>
</DatePicker>

Funktioniert nicht:

<DatePicker SelectedDate="{Binding ElementName=StandartPitBis, Path=SelectedDate}" IsEnabled="False">
    <DatePicker.Style>
        <Style TargetType="DatePicker">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=IsChecked}" Value="True">
                    <Setter Property="IsEnabled" Value="True" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DatePicker.Style>
</DatePicker>

Hat vielleicht jemand eine Idee woran das liegen könnte? Das Databinding funktioniert bei beiden Varianten einwandfrei. Der Trigger wird ausgelöst wenn eine bestimmte Checkbox gecheckt wird (IsEnabled ist allerdings ein Property des Datenobjektes, welches von der Checkbox gesetzt wird, da sich die Checkbox in einer GridView befindet).

Thema: Combobox mit SuggestAppend
Am im Forum: GUI: WPF und XAML

Hoi,

ich hätte da mal ne kurze Frage. Und zwar gab es in WinForms für eine Combobox die Möglichkeit diese beim AutoCompleteMode auf SuggestAppend zu setzen. Gibt es die Möglichkeit bei WPF zufällig auch?

Bisher hab ich es lediglich geschafft die Combobox auf Autovervollständigung zu setzen. Ausklappen und nur die zutreffenden Items anzeigen tut sie beim Tippen allerdings noch nicht.

Hat da jemand nen Tipp für mich welches Property ich da noch setzen muss?

Mein Code:


<ComboBox Grid.Column="1" Name="cb_Tag" Margin="0,0,2,0" IsEditable="True" ItemsSource="{Binding ElementName=TagControl, Path=ItemsSource}" IsTextSearchEnabled="True" IsTextSearchCaseSensitive="False" DisplayMemberPath="Description">
    <ComboBox.Resources>
        <!--<sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">0</sys:Double>-->
    </ComboBox.Resources>
    <ComboBox.InputBindings>
        <KeyBinding Key="{Binding ElementName=TagControl, Path=SplitKey}" Command="cmd:Commands.Split" />
    </ComboBox.InputBindings>
</ComboBox>

Thema: Trigger für Click auf Label
Am im Forum: GUI: WPF und XAML

Ich hab inzwischen eine andere Möglichkeit gefunden. Ich verwende ein normales Label, welchem allerdings über die InputBindings mit einem MouseBinding ein Command übergeben wird. Und dieser Command wird dann bei einem "LeftClick" gefeuert.


<Label Content="X" Grid.Column="1">
    <Label.InputBindings>
        <MouseBinding MouseAction="LeftClick" Command="cmd:Commands.Delete" />
    </Label.InputBindings>
</Label>

Thema: Auf Control in ControlTemplate zugreifen (Code Behind)
Am im Forum: GUI: WPF und XAML

Ich würde das DataGrid gerne nutzen, dies ist allerdings nicht möglich, da ich im Grid ein weiteres Grid anzeige, welches über alle Zeilen geht (sprich ich hab eine Zeile als Grid, und darunter ein weiteres Grid).

Davon mal abgesehen arbeite ich erst ne Woche mit WPF (ich komme aus dem WinForms-Sektor).

Thema: Auf Control in ControlTemplate zugreifen (Code Behind)
Am im Forum: GUI: WPF und XAML

Das Problem das ich habe ist, das ich eine ListBox und kein DataGrid oder GridView verwende und daher die Überschriften (ich missbrauche die ListBox als Grid) Labels sind. Mit einem Klick auf das Label soll allerdings nach der entsprechenden Spalte sortiert werden.

Der C#-Code steht im MousLeftButtonUp-Event des Labels.

Thema: Auf Control in ControlTemplate zugreifen (Code Behind)
Am im Forum: GUI: WPF und XAML

Hoi,

ich bin jetzt bereits schon die ganze Woche am suchen und finde einfach nix was mir da weiterhelfen könnte. Und zwar möchte ich über die xaml.cs-Datei an eine CollectionViewSource herankommen, welche sich im Resource-Bereich eines Grids befindet, welches sich wiederrum in einem ContentTemplate in einem ResourceDictionary befindet. Die CodeBehind-Datei gehört zur ResourceDatei.

Ich habs zwar schon geschafft an die CollectionViewSource zu kommen, aber aus irgendeinem Grund ist die leer (sprich CollectionViewSource.View ist null). Kann mir vielleicht jemand sagen, ob ich das ganze falsch angehe und mir vielleicht nen Ansatz nennen, wie es richtig sein müsste? Bei Google finde ich irgendwie nix dazu.

So versuche ich es derzeit:


ControlTemplate template = this["LeistungserbringerVertraegeTemplate"] as ControlTemplate;
            
Grid grid = template.LoadContent() as Grid;
//ListBox box = grid.FindName("lb_Vertraege") as ListBox;

CollectionViewSource viewSource = grid.FindResource("VertraegeSource") as CollectionViewSource;

viewSource.SortDescriptions.Clear();
viewSource.SortDescriptions.Add(new System.ComponentModel.SortDescription("VertragsID", System.ComponentModel.ListSortDirection.Ascending));

viewSource.View.Refresh();

<Grid>
    <Grid.Resources>
        <CollectionViewSource Source="{Binding Path=Vertraege}" x:Key="VertraegeSource">
            <CollectionViewSource.SortDescriptions>
                <scm:SortDescription PropertyName="Vertrag.Gruppe.ID" Direction="Ascending" />
            </CollectionViewSource.SortDescriptions>
        </CollectionViewSource>
    </Grid.Resources>

    [...]

    <ListBox Name="lb_Vertraege" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" ItemTemplate="{StaticResource VertragsListBoxTemplate}" ItemsSource="{Binding Source={StaticResource VertraegeSource}}" ScrollViewer.VerticalScrollBarVisibility="Visible" />
</Grid>

Vielen Dank euch schon mal im Voraus.

Lg
Maliko

Thema: Trigger für Click auf Label
Am im Forum: GUI: WPF und XAML

Hi,

ich hab da mal ne kurze Frage. Und zwar hab ich ein Label und hätte gerne, das bei einem Click darauf ein Trigger ausgelöst wird. Leider hab ich da bisher nix zu gefunden und immer wird auf das MouseLeftButtonUp-Event verwiesen.

Hat da jemand von euch vielleicht ne Idee, wie man das mit nem Trigger lösen kann oder muss ich da tatsächlich auf ein Event zurückgreifen?

Lg
Maliko

Thema: [Erledigt] Property von Control aus anderem Template ändern
Am im Forum: GUI: WPF und XAML

Genauso hab ich es letztlich auch gemacht. Ich hab im Objekt nen bool angelegt, welcher automatisch auf True gesetzt wird wenn der Fall zutrifft und den anschließend an den Trigger gebunden.