Laden...

Forenbeiträge von Zebes Ingesamt 457 Beiträge

02.08.2011 - 10:23 Uhr

Hallo zusammen,

ich beschäftige mich gerade mit dem GAC und der Versionierung darin.

Wenn ich den ArtikelKB891030: Using publisher policy assemblies richtig verstanden habe sollte es doch so funktionieren:

Solange sich nur die Revisionsnummer ändert, verwenden alle Applikationen die dll im GAC mit der höchsten Revisionsnummer. Ändert sich die Major- oder Minor-Nummer so wird weiterhin die alte dll im GAC verwendet.

Leider funktioniert das anscheinend nicht wie im Artikel beschrieben oder habe ich das falsch verstanden?

[EDIT]Es wird nicht die Version mit der maximalen Revision genommen (also in meinem Falle eine neuere Version die einen Bugfix enthält) sondern immer die, gegen die die Applikation kompiliert wurde.[/EDIT]

Die Problematik ist, dass ich viele Applikationen habe, die auf einem Rechner Komponenten im GAC verwenden und ich bei einem Bugfix der Komponente nicht jede Applikation neu kompilieren oder deren App.config anpassen will.

Als Alternative würden sich zwar noch die Publisher Policy Assemblies anbieten, allerdings würde ich das gerne vermeiden wenn es einfacher geht.

11.11.2010 - 18:58 Uhr

Ist es möglich Namespaces für andere dlls zu verstecken?

Ich habe eine dll die eine bestimmte Funktionalität zur verfügung stellt. Jetzt gibt es darin auch eine Reihe als internal deklarierte Klassen. Wenn ich diese dll referenziere sehe ich nun leider noch die namespaces, die nur internal Klassen beinhalten und somit leer sind.

Gibt es eine möglichkeit, dass bestimmte namespaces für andere Assemblies nicht sichtbar sind?

mfg
Zebes

29.07.2010 - 14:26 Uhr

Ist zwar schon länger her aber die Projekte müssen von AnyCPU auf x86 gestellt werden.

Wird das Projekt eigentlich noch gepflegt oder gibt es inzwischen schon bessere Alternativen?

mfg
Zebes

10.03.2010 - 23:34 Uhr

Ja das hatte ich ja oben schon so geschrieben, dass ich das erst mal so gemacht habe. Ich finde aber nicht, dass es so seltsam klingt, dass man das SelectedItem unabhängig von der möglichen Auswahl halten will.

09.03.2010 - 20:46 Uhr

Ja das Item in die liste schreiben ist Theoretisch eine Möglichkeit. Aber dann muss ich wenn ich die Lsite befülle das Objekt, dass die gleichen Werte hat wie das SelectedItem rausfiltern. Das ist mir eigentlich zu umständlich ich hätte das halt lieber einfacher.

07.03.2010 - 21:49 Uhr

Also wenn ich das bei mir ausprobiere funktioniert das super.

07.03.2010 - 14:56 Uhr

Also ich übergebe ein Objekt in dem es ein SelecetedItem gibt. Das wird irgend wo beim Start ausgelesen. Die Auswahlliste wird aber erst gefüllt, wenn jemand einen Suchbegriff in die Combobox eingibt, damit ich nicht gleich die gesamte Datenbank laden muss.

Das gleiche Problem habe ich auch, wenn ich ein Obejkt aus der Datenbank lade und es in ein DTO transformiere und parallel die Auswahlliste mit DTOs befülle. Dann ist zwar ein Abbild des gewaehlten Objektes in der Liste aber da diese nicht identisch sind wird das gewählte Objekt nicht angezeigt.

Deshalb würde ich gerne irgend wie das gewaehlte Objekt unabhängig von der Auswahlliste anzeigen.

07.03.2010 - 13:08 Uhr

Gibt es eine Möglichkeit die ComboBox so zu konfigurieren, dass das SelectedItem angezeigt wird, obwohl es nicht in der Items Collection ist? Ich habe gerade den Fall, dass ich zum Start zwar ein ausgewähltes Item habe das ich anzeigen will aber die die Liste aller Items erst mal leer ist. Die Liste wird erst später gefüllt.

06.03.2010 - 15:12 Uhr

Ok konnte es nun viel einfacher lösen. Wollte den Text des SelectedItems als Suchbegriff verwenden. Aber ich kann ja auch einfach an den Text der ComboBox binden.

06.03.2010 - 14:43 Uhr

Kann ich da nicht mit einem DataConverter arbeiten? Gabs dafür nicht etwas in wpf, dass man für bestimmte Zustände der Controls andere Werte zurückgegebn kann?

06.03.2010 - 13:51 Uhr

Hallo zusammen,

wie schaffe ich es, dass wenn meine Combobox kein gewähltes Element hat ein leeres Element in das SelectedItem steckt?

mfg
Zebes

27.02.2010 - 18:49 Uhr

Ich werde das wohl nun mit der ComboBox versuchen. Über Items kann man einen filter setzen. Eventuell kann ich das so erweitern wie ich es brauche.

Danke nochmal für die Anregung

25.02.2010 - 18:19 Uhr

Doch. Das funktioniert. Aber mir fehlen dort ein paar Möglichkeiten wie z.B. eine alternatieve Suche anuzgeben. Oder bein Eingabe die angezeigten items zu filtern. Was mir in der Combobox eigentlich fehlt ist, das ich selected Text abfragen aknn und OnTextInput nicht aufgerufen wird. Wenn es da eine Möglichket gäbe das Abzurufen könnte ich die Combobox entsprechend erweitern.

24.02.2010 - 21:23 Uhr

Danke für deine Antwort.

Ja das mit der Combobox bin ich gerade am ausprobieren. Ich könnte damit etwas ähnliches bauen wie die Intellisence im VS. Allerdings habe ich das Problem, dass ich kein Textchanged event zum rausfiltern der nicht in frage kommenden Objekte habe oder eine alternative Suche angeben kann die auf bestimmte Properties prüft.

Ich habe schon versucht das über OnTextinput zu machen aber dieses Event wird nicht aufgerufen. OnPreviewTextinput hilft mir leider nicht. Hinzu kommt, dass ich mir den Selected Text nicht ausgeben lassen kann um selbst zu filtern.

23.02.2010 - 23:41 Uhr

Hallo zusammen,

ich habe vor einiger Zeit angefangen mich in WPF einzuarbeiten. Vorher habe ich hauptsächlich mit Winforms gearbeitet.

Ich benötige nun eine Liste mit Objekten die zur Auswahl aufplopt wenn ich in eine Textbox einen Suchbegriff eingebe und z.B. enter drücke.

In Winforms zeige ich mometan ein Fenster mit der Liste der Objekte an und gebe nach Auswahl das gewählte Objekt zurück. Natürlich gekapselt über Interfaces, so dass kein direkter Zugriff auf eine Form stattfindet.

In WPF arbeite ich mit dem MVVM Muster und habe keinen Zugriff auf die UI Elemente auch nicht über ein Interface. Wie würde man soetwas in WPF realisieren?

mfg
Zebes

18.01.2010 - 09:33 Uhr

Was sich für mich in der Praxis bewehrt hat ist Usecase bezogen vorzugehen. Also z.B. willst du zuerst, dass wenn ein Benutzer den "Load" Knopf drückt Daten geladen werden. Also Fängst du in der GUI an den Button einzubauen und arbeitest dich von der GUI bis ins Model durch. Als nächstes soll z.B. gespeichert werden. Also fängst du wieder in der GUI an den "Speicher" Button zu setzen und arbeitest dich wieder durch deine Schichten durch. So kann man Schritt für Schritt sein Programm um Funktionalität erweitern und du hast auch recht schnell ein sichtbares Ergebnis.
Das ist zwar in erster Linie auf MVP bezogen aber ich denke diese Vorgehensweise läst sich auf fast alle Architekturen übertragen.

mfg
Zebes

13.11.2009 - 11:45 Uhr

Naja wenn du erst mal nur über Dependency Injection sprichst und verstehen willst was gemeint ist brauchst du von einem IOC-Container nichts zu wissen. Der Conatiner ist mehr ein Hilfsmittel.

Ich betreibe Depedency Injection auch ohne Container.

13.11.2009 - 11:20 Uhr

Ich dachte hier geht es um Dependency Injection und nicht um die Verwendung von IOC-Container. Ich finde, dass man das schon trennen sollte.

mfg
Zebes

03.11.2009 - 23:37 Uhr

Nein das problem war wohl etwas einfacher. Ich habe der Textbox einen neuen Text zugewiesen und das im Textchanged event. Klar, dass der selbe Text nochmal zugewiesen wird und die Selektion verloren geht. Naja trozdem danke für die Hilfe.

03.11.2009 - 22:01 Uhr

Hallo zusammen,

ich versuche gerade ne art autocompletion für meine Textbox zu bauen. Und zwar soll wärend der Eingabe hinter dem Cursor der Text erscheinen, der möglicherweise vom Schreiber gewollt ist. Dieser angebotene Teil des Textes soll markeirt sein. Für die Teilmarkeirung wollte ich textbox.Select() verwenden nur leider hat diese Methode keinen Effekt. SelectAll() funktioniert dagegen wunderbar.

Hat jemand ne Ahnung woran das liegen kann?

mfg
Zebes

12.10.2009 - 00:15 Uhr

Laut ObjectBrowser implementiert List<T> IEnumerable, IEnumerable<T>, IList<T> und noch son paar. Aber wenn ich mir alle über Reflection ausgeben lasse ist keines davon dabei. Ich schau noch mal welche das waren, die mir angezeigt wurden.

11.10.2009 - 16:52 Uhr

Ok danke. Mich wundert aber immer noch, dass IEnumerable nicht als interface in der Auflistung auftaucht.

11.10.2009 - 16:22 Uhr

Hallo zusammen,

ich spiele gerade ein kleinwenig mit Reflection herum und habe nun folgendes Problem.

Ich muss herausfinden, ob ein object IEnumerable implementiert. Ich habe es schon mit FindInterfaces, IsSubclassOf(), GetInterface und GetInterfaces ausprobiert. Aber laut dieser Methoden implementiert eine List<TestClass> IEnumerable nicht. Kann mir jemand erklären, wie das sein kann? Laut objectbrowser wird das interface ja implementiert.

mfg
Zebes

11.10.2009 - 02:06 Uhr

Ja Momentan arbeite ich wirklich mit dem selcetionchanged event. Aber irgend wie finde ich es trodem schwachsinnig, dass die das Binding Konzept an dieser Stelle nicht konsequent durchgezogen haben.

Aber danke für eure Lösungsansätze

09.10.2009 - 08:41 Uhr

Ach das war das was ich nicht ganz verstanden hatte. Value bezieht sich automatisch auf das gebundene Objekt im ListView? Also Content sollte das Property im Item sein.

08.10.2009 - 21:05 Uhr

Ich versuche das gerade, scheiter aber an dem binden des IsSelected an ein SelectedItem. Kann mir da jemand auf die sprünge helfen?

08.10.2009 - 00:11 Uhr

Da frage ich mich immer noch, warum die ihre Konzepte nicht konsequent durchgezogen haben. Naja gut. Das mit dem Template war schon mal ein guter Hinweis ich schau mir das mal an.

Danke

07.10.2009 - 22:04 Uhr

Hat noch keiner Multiselect gebraucht? Oder verwende ich einfach das falsche Control?

06.10.2009 - 23:58 Uhr

Hallo zusammen,

ich habe einen ListView, den ich über eine ObservableCollection<T> befülle. Jetzt hätte ich gerne Multiselect und würde gerne eine andere ObservableCollection<T> per Binding an die SelectedItems heften. Leider geht das nicht. Hat jemand ne Lösung parad wie ich das machen kann?

mfg
Zebes

22.09.2009 - 21:04 Uhr

Ok ich ich habs.

Mein Command hatte ein Standard "CanExecuteChanged" wenn man es zu


public event EventHandler CanExecuteChanged {
	add { CommandManager.RequerySuggested += value; }
	remove { CommandManager.RequerySuggested -= value; }
}

dann gehts.

Danke für eure Hilfe.

22.09.2009 - 20:52 Uhr

Hmm ich bin gerade irgend wie schwer von Begriff. Ich habe doch schon das Command an den Button gehangen. Wozu genau brauche ich das noch an dem Window?

22.09.2009 - 20:35 Uhr

Und was genau bedeutet das nun für mich?

22.09.2009 - 10:53 Uhr

Hmm nur um sicher zugehen, dass das nicht falsch verstanden wird. Ich arbeite nicht mit den Events sondern mein Viewmodel hat ein Command Save das im Prinzip so aussieht:


class Mycommand : ICommand{
    MyViewModel vm;

    public MyCommand(MyViewModel vm){
        this.vm = vm;
    }

    public bool CanExecute(object obj){
        return !vm.Prop.IsNullOrEmpty();
    }

    public void Execute(object onj){
        //do something
    }

    public event EventHandler CanExecuteChanged;
}

In den Beispielen die ich gesehen habe werden immer EventHandler verwendet.

22.09.2009 - 09:55 Uhr

Muss ich das Expliziet machen? Ich habe eine andere Beispielanwendeung, da kann ich das auch nirgends enddecken. Ich dachte, dass window leitet die Events automatisch weiter. Woher wieß mein Button denn, dass er CanExecute aufrufen muss wenn etwas in die TextBox eingegeben wird? Oder hängt das vom Updatemode des Properties an der TextBox ab?

22.09.2009 - 08:12 Uhr

Habe das gerade mal getestet. Der Button ruft "CanExecute" troz des Events nicht auf.

22.09.2009 - 08:09 Uhr

Danke für die Antwort.

Also von mir aus auch mit dem NotifyProopertyChanged des gebundenen Propertys. Soweit ich weis sollte man ja Code im Codebehind File vermeiden.

mfg
Slayne

22.09.2009 - 00:44 Uhr

Hallo zusammen.

Ich habe die Folgende xaml Struktur:


<Window x:Class="view"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="test" >
	<Canvas>
		<Grid Canvas.Left="0" Canvas.Right="0" Canvas.Top="0" Height="68" Width="278">
			<Grid.ColumnDefinitions>
				<ColumnDefinition Width="50" />
			</Grid.ColumnDefinitions>
			<Grid.RowDefinitions>
				<RowDefinition Height="30"/>
			</Grid.RowDefinitions>			
			<TextBlock >
				<TextBox >
					<Binding Path="Prop" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" />
				</TextBox>
			</TextBlock>
		</Grid>
		<StackPanel Canvas.Bottom="0" Canvas.Right="0" Orientation="Horizontal">
			<Button Command="{Binding Save}" Click="CloseHandler">Save</Button>
		</StackPanel>
	</Canvas>	
</Window>

Wenn ich das Fenster auf mache, wird CanExecute genau einmal aufgerufen und deaktiviert den Save-Button. Danach leider nicht mehr. Ich hätte gerne, dass sobald sich der Text in der Textbox ändert CanExecute aufgerufen wird. Wie stelle ich das an?

mfg
Zebes

12.09.2009 - 17:33 Uhr

Danke für eure Antworten.

Was ich genau machen will hatte ich oben schon beschreiben oder was genau ist unklar?

11.09.2009 - 22:35 Uhr

Ich habe jetzt schon versucht über einen Trigger eine Methode auszulösen. Aber das klapt leider auch nicht. Es muss doch eine Möglichkeit geben, bei Änderung im ViewModel eine Methode im View anzusprechen. Eventuell auch über ein Event im ViewModel?

11.09.2009 - 01:41 Uhr

Das mit der Referenz wäre aber doof, da Man das bei MVVM ja nicht machen soll.

Bei MVP mit WinForms hätte ich das so ähnlich gemaht, halt nur die Form über ein Interface entkoppelt. Ich dachte nur, dass das unter WPF einfacher ginge.

Nur um nochmal zu erklären worum es mir eigneltich geht, das dieser Fall warscheinlich häufig auftritt.

Ich habe ein Hauptfenster mit einer Menüleiste. Wenn ich dort einen Menüpunkt anklicke wird im ViewModel ein Command aufgerufen, welches das Fenster zu dem Menüpunkt anzeigen soll. Da ich dort nicht direkt auf das WPF-Window zugreifen will, lasse ich mir nur das ViewModel für den Menüpunkt zurückgeben und will von da aus einfach Show aufrufen.

10.09.2009 - 23:55 Uhr

Hallo zusammen,

ich habe vor kurzem angefangen mich ein wenig in WPF einzuarbeiten. Wie bekomme ich es hin, dass ich über mein ViewModel das ShowDialog des Views aufrufen kann?

Mein anstatz ist Momentan so:


class ViewModel : INotifyPropertyChanged{
    bool visible;
    bool Visible{
        get{return visible;}
        set{
            visible = value;
            PropertyChanged(this, new PropertyChangedEventargs("Visible");
        }
    }

    public void Show(){ 
        Visible = true;
    }

    public event PropertyChanged;
}

Die Idee war eigentlich, jetzt die Visible eigenschaft des Fensters mit der des ViewModels zu verbinden. 1. Bekomme ich das irgend wie nicht hin und 2. glaube ich, dass das etwas zu kompliziert ist.

Also es ist wichtig, dass es eine Methode wie Show() gibt weil das wieder von einem anderen ViewModel aus aufgerufen werden soll.

mfg
Zebes

31.08.2009 - 21:08 Uhr

Ok danke schön ich schaue mir das mal an. Sehe ich dass denn richtig, dass ich das nicht über bestehende .NET libs machen kann?

31.08.2009 - 18:14 Uhr

Hallo zusammen,

ich spiele gerade etwas mit Sockets herum. Ich würde ganz gerne alle ein und ausgehenden Verbindungen meiner Netzwerkkarte anzeigen. Ich habe versucht mir dafür einen Socket zu erstellen was mir leider nicht glingt, da man die 3 Parameter für den Socket-Konstruktor nicht auf Unknown schalten darf.

Wie würde man das denn normaler weise machen? Ist Socket vielleicht die falsche Klasse dafür?

mfg
Zebes

28.08.2009 - 00:56 Uhr

ca 25000 Zeichen.

Ich kann auch was wirres reinschreiben ab ner gewissen Länge ist der String nicht mehr sichtbar. Bin mir aber nicht sicher ob das irgend wie am Paste liegt

27.08.2009 - 15:34 Uhr

Ich glaube das wurde etwas falsch verstanden, In der Normalen Textbox wird garkein Tet mehr angezeigt ab einer bestimmten Länge. In der RichTextbox im Singleline Mode nur bis zu einer bestimmten länge. Wenn ich die Richtextbox auf Multiline umschalte wird der komplette Text angezeigt.

26.08.2009 - 21:48 Uhr

Nein das ist es leider auch nicht.

26.08.2009 - 21:44 Uhr

Das check ich mal

26.08.2009 - 17:08 Uhr

Das macht leider keinen Unterschied. Und wie gesagt im "Text" Property steht auch der gesamte string drin. Bei der RichTextBox wird der string zwar angezeigt aber ich kann nicht von links nach rechts komplett drüber scrollen. Der stopt irgend wann und geht nicht weiter obwohl auch hier der Komplette string enthalten ist.

26.08.2009 - 14:58 Uhr

Hallo zusammen.

Ich habe gerade ein kleines Importtool geschrieben, dass einen XML-String entgegen nimmt. Dieser wird vom Benutzer aus einem anderen Programm per Copy Kopiert und per Paste in eine Textbox eingefügt. Aus irgend einem Grund scheint die Textbox den string ab einer bestimmten länge nicht mehr darzustellen. Er ist aber da.

Ist das ein Bug? Oder gibts einen Trick, damit er wieder dargetellt wird?

mfg
Zebes