Hallo,
ich habe etwa 20 Projekte in einer Solution. Diese 20 Projekte, sollen die gleiche Versionsnummer bekommen.
Die Versionsnummer ist in einer Texdatei gespeichert. Bisher habe ich im PreBuild eine exe aufgerufen, welche die Versionsnummer in der AssemblyInfo.cs umschießt.
Hat jemand noch eine andere Idee, wie ich das vielleicht eleganter lösen kann?
ok, ich werde mal verscuhen ihn neu zu installieren, ansonsten installiere ich das komplette Windows neu.
Danke ujr
Du hast recht, der Http-Dients ist nicht installiert.
Ich sehe ihn allerdings auch nicht auf einem anderem Rechner in der Systemsteuerung. sc qc http funktioniert aber auf dem anderen rechner. Ich sehe nur den Dienst HTTP-SSL. Wie lautet der Eintrag für den Httpdienst?
Mit Adminrechten.
Die Firewall kann doch damit nichts zu tun haben oder?
Es sollte aber keine eingestellt sein...
Ich verwende .net-Framework 3.5
Hier das minimale Beispiel:
static void Main(string[] args)
{
Console.WriteLine(System.Net.HttpListener.IsSupported); //liefert false, sollte aber true liefern
}
Ich habe das Update eingespielt, neu gestartet, leider ohne Erfolg.
Mit den rechten hat das nichts zu tun. Ich habe zum Test eine Konsolenanwendung, welche mir einfach HttpListener.IsSupported ausgibt.
Ich benutze einen Windowsdienst.
HttpListener.IsSupported liefert false...
Die http.sys ist erstellt am 04.08.2004 und geändert am 13.04.2008
Version : 5.1.2600.5512 (xpsp.080413-0852)
Hallo,
ich rufe einen Webservice auf und bekomme die Exception:> Fehlermeldung:
System.IO.FileNotFoundException: Die Datei "C:\WINDOWS\TEMP\125r4312.dll" konnte nicht gefunden werden. Dateiname: "C:\WINDOWS\TEMP\125r4312.dll" Server stack trace: bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) bei System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath) bei System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) bei Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch(CompilerParameters options, String[] fileNames) bei Microsoft.CSharp.CSharpCodeGenerator.FromSourceBatch(CompilerParameters options, String[] sources) bei Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromSourceBatch(CompilerParameters options, String[] sources) bei System.CodeDom.Compiler.CodeDomProvider.CompileAssemblyFromSource(CompilerParameters options, String[] sources) bei System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence) bei System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies) bei System.Xml.Serialization.XmlSerializer.GetSerializersFromCache(XmlMapping[] mappings, Type type) bei System.Xml.Serialization.XmlSerializer.FromMappings(XmlMapping[] mappings, Type type) bei System.ServiceModel.Description.XmlSerializerOperationBehavior.Reflector.SerializerGenerationContext.GenerateSerializers() bei System.ServiceModel.Description.XmlSerializerOperationBehavior.Reflector.SerializerGenerationContext.GetSerializer(Int32 handle) bei System.ServiceModel.Description.XmlSerializerOperationBehavior.Reflector.MessageInfo.get_BodySerializer() bei System.ServiceModel.Dispatcher.XmlSerializerOperationFormatter.SerializeBody(XmlDictionaryWriter writer, MessageVersion version, String action, MessageDescription messageDescription, Object returnValue, Object[] parameters, Boolean isRequest) bei System.ServiceModel.Dispatcher.OperationFormatter.SerializeBodyContents(XmlDictionaryWriter writer, MessageVersion version, Object[] parameters, Object returnValue, Boolean isRequest) bei System.ServiceModel.Dispatcher.OperationFormatter.OperationFormatterMessage.OperationFormatterBodyWriter.OnWriteBodyContents(XmlDictionaryWriter writer) bei System.ServiceModel.Channels.BodyWriter.WriteBodyContents(XmlDictionaryWriter writer) bei System.ServiceModel.Channels.BodyWriterMessage.OnWriteBodyContents(XmlDictionaryWriter writer) bei System.ServiceModel.Channels.Message.OnWriteMessage(XmlDictionaryWriter writer) bei System.ServiceModel.Channels.Message.WriteMessage(XmlDictionaryWriter writer) bei System.ServiceModel.Channels.BufferedMessageWriter.WriteMessage(Message message, BufferManager bufferManager, Int32 initialOffset, Int32 maxSizeQuota) bei System.ServiceModel.Channels.TextMessageEncoderFactory.TextMessageEncoder.WriteMessage(Message message, Int32 maxMessageSize, BufferManager bufferManager, Int32 messageOffset) bei System.ServiceModel.Channels.HttpOutput.SerializeBufferedMessage(Message message) bei System.ServiceModel.Channels.HttpOutput.Send(TimeSpan timeout) bei System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.SendRequest(Message message, TimeSpan timeout) bei System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout) bei System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout) bei System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) bei System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) bei System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) Exception rethrown at [0]: bei System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) bei System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) bei
Dies scheint doch ein Problem vom XmlSerializer zu sein.
Kann mir jemand weiterhelfen?
Danke!
Hallo,
ich habe eine Webservice (WCF) (.Net3.5), Wenn dieser einen HttpListener aufsetzen möchte bekomme ich eine PlatformNotSupportedException.
Fehlermeldung:
System.PlatformNotSupportedException: Die Operation wird auf dieser Plattform nicht unterstützt.
bei System.Net.HttpListener..ctor()
bei System.ServiceModel.Channels.SharedHttpTransportManager.OnOpen()
bei System.ServiceModel.Channels.TransportManager.Open(TransportChannelListener channelListener)
bei System.ServiceModel.Channels.TransportManagerContainer.Open(SelectTransportManagersCallback selectTransportManagerCallback)
bei System.ServiceModel.Channels.TransportChannelListener.OnOpen(TimeSpan timeout)
bei System.ServiceModel.Channels.HttpChannelListener.OnOpen(TimeSpan timeout)
bei System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
bei System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout)
bei System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
bei System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
bei System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
bei System.ServiceModel.Channels.CommunicationObject.Open()
Das Betriebssystem ist Windows XP Pro SP3.
Woran könnte das liegen?
Hallo Xynratron,
dann funktioniert es natürlich. Das wäre jetzt ein Workaround. Aber mich würde es schon interessieren, wo dieser Timeout zuschlägt....
Kann man irgendwo einstellen, wie lange eine SSL Session gültig ist, bzw. wann das Remotezertifkat erneut validiert werden muss?
Ich habe jetzt herausgefunden, dass wenn ich den Webservice Plain (also nicht SSL verschlüsslet) aufsetze, keine Verzögerung auftritt. Also muss es irgendwie an der SSL-Verschlüssleung liegen...
Hallo Rainbird,
die 15 Sekunden vergehen nicht beim Aufruf des Webservices im SAP, sondern beim Aufruf meines eigenen Webservices, welcher mit dem Windowsdienst gehostet wird. D.h. die 15 Sekunden vergehen, bis bei mir im Code in die Webservicemethode gesprungen wird.
Ich habe einen Windowsdienst eingerichtet. Wenn dieser mit den Rechten des Systemkontos läuft, so dauert die erste Anfrage etwa 15 Sekunden und nach einer Minute dauert es wieder die 15 Sekunden. Wenn ich den Dienst mit meinem Konto (Administrator) laufen lasse, so dauert die erste Anfrage 3 Sekunden und es scheint keine Timeout zu geben.
Woran könnte das liegen?
@Rainbird: Der Webservice braucht i.d.R. 100 Millisekunden. Wenn aber 1 Minute lang der Webservice nicht aufgerufen wurde, so dauert der Aufruf wider über 15 Sekunden.
@trib: Den Timeout muss ich auf Serverseite einstellen richtig?
Hallo,
ich konsumiere einen Webservice, welcher in einem SAP-System gehostet wird.
Der erste Aufruf dauert über 15 Sekunden, danach dauert jeder weitere Aufruf etwa 100 Millisekunden. Wenn 1 Minute lang der Webservice nicht aufgerufen wird, so dauert der nächste Aufruf wieder über 15 Sekunden. Kann mir jemand hinweise geben, wie ich das Problem herausfinden kann? Ich habe schon ausprobiert, ob es vielleicht an den Proxyeinstellungen im Internet Explorer liegt, aber da ist kein Proxy eingestellt...
Der Webservice verwendet SSL. Bisher habe ich immer Webservices ohne SSL verwendet, da hatte ich das Problem nicht...
Hat keiner eine Idee?
Hallo,
ich habe eine Silverligthanwendung mit einem Grid. Dort habe ich AllowDrop=true gesetzt. Wenn ich dann vom Dateiexplorer eine Datei auf das Grid mit Drag&drop ziehe so klappt alles wunderbar.
Wenn ich nun aus Outllook eine Dateianhang auf mein Grid ziehe, so wird zwar das DragEnter-Event ausgelöst aber kein Drop-Event. Woran könnte das liegen?
Ok Danke Xynratron,
ich bin immer davon ausgegangen, dass ich nur auf der IP des Rechners einen Listener aufsetzen kann.
Hallo,
ich habe mal eine Frage zur Klasse System.ServiceModel.ServiceHost.
Wenn ich als Basisadresse eine Uri angebe, wo die IP nicht der IP des Rechners entspricht wo das Programm läuft, so bekomme ich keine Exception.
Ich hätte jetzt erwartet, dass ich einen Fehler bekomme, dass die Url ungültig ist, bzw. dass ich auf dieser Url keinen Listener starten kann.
Die IP, die ich angegeben habe gibt es aber überhaupt nicht. Wie kann ich jetzt den Endpunkt ansprechen?
Ich bitte um Aufklärung, warum das so ist und warum ich keinen Fehler bekomme.
Danke!
Stimmt, die URL kann ich ja relativ aufrufen, dadurch muss ich ja nicht die komplette URL kennen.
Hallo gfoidl,
danke für deine Ideen.
Out-Of-Browser möchte ich nicht verwenden.
Ich schaue mir mal den generischen HttpHandler an.
Hi,
ich habe eine Silverlightanwendung, welche Dateien verwaltet. Diese Dateien werden in einer DB gepeichert. Es wird mit dem EF und den RIA Services darauf zugegriffen. Nun möchte ich eine Datei durch die lokal verknüpfte Anwendung öffnen lassen (wie Doppelklick auf Datei im Dateiexplorer).
Wer hat Ideen, wie man das realisieren könnte?
In meiner Silverlight Anwendung verwalte ich Dateien ähnlich wie im Dateiexplorer. Diese Dateien werden in einer Datenbank gespeichert. Auf die Daten greife ich mit Entity Framework + RIA Services zu.
Datei hoch-/runterladen klappt gut. Nun möchte ich aber eine Datei "Öffnen", d.h. die verknüpfte Anwendung soll die Datei öffnen (z.B. Worddatei, soll von Word geöffnet werden). Aus der Silverlightclient-Anwendung ist dies aus Sicherheitsgründen nicht möglich. Ich dachte mir nun, dass ich die Datei mit einem HttpServer unter einer URL zur Verfügung stelle. In der Silverlightclient-Anwendung öffne ich eine neues Broweserfenster mit der URL der Datei. Daraufhin lädt der Browser die Datei runter und bietet dann den Standarddialog zum Öffnen oder Speicher der Datei an.
Mir ist leider bis jetzt nichts besseres eingefallen. Ein separater Windowsdienst würde natürlich auch gehen, aber der müsste dann auch auf die DB zugreifen und die Dateien auslesen. Dies wird aber bereits von der Webanwendung gedacht und da dachte ich, dass die Webanwendung direkt den HttpListener aufmacht.
Hallo,
ich habe eine Silverlight.Web-Anwendung, welche im IIS gehostet wird.
In dem Webprojekt setze ich einen System.Net.HttpListener auf.
Bei mir lokal (wenn ich Visual Studio als Administrator starte) klappt das. Wenn ich die Anwendung auf den IIS deploye, so bekomme ich ich die Exception:
System.Net.HttpListenerException (0x80004005): Zugriff verweigert at System.Net.HttpListener.AddAllPrefixes() at System.Net.HttpListener.Start() at SilverlightTest.Web.HttpServer.Server.ListenerThread() in D:\SOURCE_CODE\FISrpt\Server.Web\HttpServer\Server.cs:line 57 12
Was muss ich tun, damit der Code die Berechtigung hat den Listener zu Starten?
ScrollIntoView möchte ich eigentlich erst am Ende verwenden, damit ich die gefunden Zeile an dem gefunden Index anzeigen kann.
Wenn nichts gefunden wird, so wird mit deiner Variante ja immer die gesamte Tabelle durchgescrollt. Das ist nicht sehr performant.
Ich habe jetzt mal einen anderen Ansatz gewählt. Anstatt den Inhalt mit GetCellContent() zu ermitteln hole ich mir mit Reflection und einem MemberPath (den habe ich bereits, da ich ihn schon für das Sortieren benötige) direkt das Property welches ich mit meinem Suchstring vergleiche. Dies mache ich dann für jede Spalte (jede Spalte hat einen eigenen PropertyPath).
Im Prinzip ist es egal, ob ich mir die Selektion über den Index oder das Item setze. Entscheidend ist, dass GetCellContent() null zurückliefert, wenn ich die Methode für ein Element aus ItemSource aufrufe, wofür noch nicht die entsprechende Row geladen wurde.
@unconnected: Jedes Element in meiner ItemSource ruft für jede Spalte GetCellContent() auf.
Als Ergebnis meiner Suche benötigt ich den Index der Zeile mit dem nächsten Treffer.
Anschließend setze DataGrid.SelectedIndex auf den gefunden Index. Das funktioniert auch, solange alle Zeilen im sichtbaren Bereich liegen.
Hi zero_x,
ich habe bereits gegoogelt, aber leider nichts gefunden...
Hi,
ich möchte in einem DataGrid über alle Zeilen und Spalten suchen.
Mein erster Ansatz ist, die ItemsSource des DataGrids zu durchlaufen und für jedes Element und jede Spalte GetCellContent() aufzurufen. Leider liefert GetCellContent() null zurück, wenn die Zeile noch nicht geladen wurde (wenn sie sich z.B. außerhalb des sichtbaren Bereichs liegt).
Wie könnte man noch vorgehen?
Problemgelöst. Ich hatte einen Denkfehler. Die clientaccess und crsossdomainpolicy.xml muss nicht zu dem Webprojekt hizugefügt werden, sondern muss auf dem Webserver abgelegt werden, den ich mit meinem Request aufrufe. Dann ging es sofort.
Ich habe es nach langem Suchen rausgefunden woran es liegt, verstehe aber nicht warum.
Ich habe für ein Entity-Objekt eine partielle Klasse in meinem Clientprojekt hinzugefügt. Dies ist kein Problem, damit funktioniert auch alles. Nun habe ich eine Indexerproperty zu dieser Klasse hinzugefügt, und damit tritt der obige Fehler auf...
verwendetes Datenbanksystem: Sql Server 2008 Express
Hallo,
ich verwende das EntityFramework und Silverlight mit RIA-Services.
Wenn ich nun Daten änderne bekomme ich eine TargetParameterCountException.
Diese Exeption wird in der vom RIA-Framework generierten Datei ausgelöst.
Hier mal der Codeausschnitt der die Exeption auslöst:
/// <summary>
/// Gets or sets the 'FreeMonday' value.
/// </summary>
[DataMember()]
public bool FreeMonday
{
get
{
return this._freeMonday;
}
set
{
if ((this._freeMonday != value))
{
this.OnFreeMondayChanging(value);
this.RaiseDataMemberChanging("FreeMonday");
this.ValidateProperty("FreeMonday", value);
this._freeMonday = value;
this.RaiseDataMemberChanged("FreeMonday");
this.OnFreeMondayChanged();
}
}
}
Die Exception wir din der Zeile this.RaiseDataMemberChanging("FreeMonday") ausgelöst.
Ich habe aber keine Ahnung was da schief geht. Vorallem hat es auch schonmal funktioniert das ist das komische...
Die gleiche Exception bekomme ich auch, wenn ich SubmitChanges im Client aufrufe:
System.ServiceModel.DomainServices.Client.DomainOperationException: Submit operation failed. Parameteranzahlkonflikt ---> System.Reflection.TargetParameterCountException: Parameteranzahlkonflikt
bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
bei System.Reflection.RuntimePropertyInfo.GetValue(Object obj, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture)
bei System.Reflection.RuntimePropertyInfo.GetValue(Object obj, Object[] index)
bei System.ServiceModel.DomainServices.Client.Entity.ExtractState()
bei System.ServiceModel.DomainServices.Client.Entity.Merge(Entity otherEntity, LoadBehavior loadBehavior)
bei System.ServiceModel.DomainServices.Client.DomainContext.ApplyMemberSynchronizations(IEnumerable1 changeSetResults) bei System.ServiceModel.DomainServices.Client.DomainContext.ProcessSubmitResults(EntityChangeSet changeSet, IEnumerable
1 changeSetResults)
bei System.ServiceModel.DomainServices.Client.DomainContext.CompleteSubmitChanges(IAsyncResult asyncResult)
--- Ende der internen Ausnahmestapelüberwachung ---
Ich habe es selbst rausgefunden. Man muss das Script im "SQLCMD mode" ausführen...
verwendetes Datenbanksystem: SQL Server 2008 R2 Express
Hi,
ich verwende das Entity Framework und habe mir ein Migrations-Sqlscript generieren lassen.
Dieses möchte ich nun ausführen, bekomme dabei aber Fehlermeldungen.
Hier der Beginn des Scripts:
/*
Deployment script for FISrpt_Test
\*/
GO
SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;
SET NUMERIC_ROUNDABORT OFF;
GO
:setvar DatabaseName FISrpt_Test
:setvar DefaultDataPath "c:\Programme\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\"
:setvar DefaultLogPath "c:\Programme\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\"
GO
USE [master]
GO
:on error exit
GO
IF (DB_ID(N'$(DatabaseName)') IS NOT NULL
AND DATABASEPROPERTYEX(N'$(DatabaseName)','Status') <> N'ONLINE')
BEGIN
RAISERROR(N'The state of the target database, %s, is not set to ONLINE. To deploy to this database, its state must be set to ONLINE.', 16, 127,N'$(DatabaseName)') WITH NOWAIT
RETURN
END
GO
IF NOT EXISTS (SELECT 1 FROM [master].[dbo].[sysdatabases] WHERE [name] = N'$(DatabaseName)')
BEGIN
RAISERROR(N'You cannot deploy this update script to target FISRPT\SQLEXPRESS. The database for which this script was built, FISrpt_Test, does not exist on this server.', 16, 127) WITH NOWAIT
RETURN
END
GO
IF (@@servername != 'FISRPT\SQLEXPRESS')
BEGIN
RAISERROR(N'The server name in the build script %s does not match the name of the target server %s. Verify whether your database project settings are correct and whether your build script is up to date.', 16, 127,N'FISRPT\SQLEXPRESS',@@servername) WITH NOWAIT
RETURN
END
GO
IF CAST(DATABASEPROPERTY(N'$(DatabaseName)','IsReadOnly') as bit) = 1
BEGIN
RAISERROR(N'You cannot deploy this update script because the database for which it was built, %s , is set to READ_ONLY.', 16, 127, N'$(DatabaseName)') WITH NOWAIT
RETURN
END
GO
USE [$(DatabaseName)]
GO
/*
The column [dbo].[ProjectStateSet].[UsedByClient] on table [dbo].[ProjectStateSet] must be added, but the column has no default value and does not allow NULL values. If the table contains data, the ALTER script will not work. To avoid this issue, you must add a default value to the column or mark it as allowing NULL values.
\*/
....
Hier die Fehlermeldungen:
Meldung 102, Ebene 15, Status 1, Zeile 1
Falsche Syntax in der Nähe von ':'.
Meldung 102, Ebene 15, Status 1, Zeile 1
Falsche Syntax in der Nähe von ':'.
Meldung 50000, Ebene 16, Status 127, Zeile 4
You cannot deploy this update script to target FISRPT\SQLEXPRESS. The database for which this script was built, FISrpt_Test, does not exist on this server.
Meldung 911, Ebene 16, Status 1, Zeile 1
Die $(DatabaseName)-Datenbank ist nicht vorhanden. Stellen Sie sicher, dass der Name richtig eingegeben wurde.
Meldung 208, Ebene 16, Status 1, Zeile 5
Ungültiger Objektname 'dbo.ProjectStateSet'.
Wenn ich mit der Maus über die Zeile ":setvar DatabaseName FISrpt_Test" kommt noch die Meldung 'DatabaseName' ist keine bekannte Option.
Kann mir jemand sagen was da nicht stimmt?
Danke!
Hi Femaref,
es muss doch aber irgendwo dran liegen, in diversen Beispielen zum DataGrid ist doch immer von 10000 Zeilen und mehr die Rede.
Ich werde es also trotzdem mal probieren, mein DataGrid so minimal wie möglich zu gestalten und dann mal sehen, ob die Performance besser wird.
Mal schauen wie es ausgeht
Hi ProGamer,
den DataPager habe ich auch mal eingebaut, damit ging es schon schneller, aber nicht wirklich flüssig. Der erste Aufbau dauert gut und gern 5 Sekunden, Zeilen filtern (ein-/Ausblenden) mittels PagedCollectionView dauert auch 3 Sekunden und beim Scrolen ruckelt es stark.
Ich vermute mal, das Die DataGridTemplateColumns und die benötigten DataTemplates schuld sind. Ich werden am Montag mal testweise auf simple TextColumns umstellen.
Hallo,
ich verwende das Standard-DataGrid. Dabei habe ich festgestellt, dass bei meiner Anwendung die Perfomance des DataGrids nicht besonders ist. Es dauert recht lange bis es aufgebaut ist, das Scrollen und das Hinzufügen/Entfernen von Zeilen dauert recht lange.
Ich habe etwa 50 Spalten und 200 Zeilen in dem Grid, wobei etwa die Hälfte der Spalten ausgeblendet sind.
Die Spalten sind alle vom Typ DataGridTemplateColumn, mit eigenen (simplen) Controls als DataTemplates.
Hat jemand Tipps, wie man das Grid beschleunigen kann?
Was sollte man unbedingt vermeiden um vernünftige Performance zu erzielen?
Ich bin dankbar für alle Hinweise.
Du verwendest als Item.Content einfach ein HyperlinkButton...
Hallo,
ich habe ein Silverlightprojekt (Clietn + Web-Projekt).
Vom Client aus möchte ich einen Httprequest auf den lokalen rechner machen (127.0.0.1).
Ich habe zu dem Webprojekt eine clientaccesspolicy.xml und eine crossdomain.xml hinzugefügt.
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-http-request-headers-from domain="*"/>
</cross-domain-policy>
Ich bekomme aber immer noch eine SecuirtyException, wenn ich mit der Klasse WebClient auf die URL 127.0.0.1 zugeifen möchte.
Wie kann ich nun weiter vorgehen?
Ich könnte auch einfach eine neue erste Spalte einfügen und diese dafür verwenden...
Hallo,
ich spiele gerade mit dem DataGrid herum.
Ich habe HeadersVisibility auf All gesetzt. Kann man auf den Header ganz links oben zugreifen (der Header der RowHeaders)?
In Excel kann man durch einen Klick auf das Element alle Zellen markieren.
Ich möchte darin ein eine ComboBox o.ä. darstellen, mit der man die Sichtbarkeit der einzelnen Spalten einstellen kann.
OK, ich probiere es mal mit DataBinding.
Ich bin halt auf die Klasse DataBinder gestoßen, als ich gegoogelt habe, wie ich auf Properties zugrfien könnte, von denen ich nur den Pfad als String habe.
@CSL: Danke, wieder was gelernt 😃
Hi,
wenn due das HierarchicalDataTemplate verwendest, so muss die Liste der untergeordneten Elemente immer gleich heißen, also anstatt "Unterkategorien" und "Artikel" z.B. "Childs".
public class Hauptkategorie
{
private List<Unterkategorie> _unterkategorie;
public Hauptkategorie()
{
_unterkategorie = new List<Unterkategorie>();
}
public string Name { get; set; }
public List<Unterkategorie> Childs
{
get { return _unterkategorie; }
set { _unterkategorie = value; }
}
}
public class Unterkategorie
{
private List<Artikel> _artikel;
public Unterkategorie()
{
_artikel = new List<Artikel>();
}
public string Name { get; set; }
public List<Artikel> Childs
{
get { return _artikel; }
set { _artikel = value; }
}
}
public class Artikel
{
public string Artikelnummer { get; set; }
public string Name { get; set; }
}
Das Xaml sieht dannn so aus:
<TreeView ItemsSource="{Binding Hauptkategorien}" Width="220" DockPanel.Dock="Left" Name="tvArtikel" Margin="5,5,5,10" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" SelectedItemChanged="tvArtikel_SelectedItemChanged">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Childs}">
<TextBlock Text="{Binding Name}" />
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
Ich möchte die Methode DataBinder.Eval verwenden, damit ich ein Property eines Objektes über einen String ansprechen kann.
Hi,
ich habe eine ganz einfache Frage: In welcher Assembly befindet sich die Klasse DataBinder?
Ich finde bei meiner Suche immer die Assemlby System.Web. Diese kann ich aber nicht als Referenz zu meinem Silverlightprojekt hinzufügen...
Ich habe jetzt testweise die RowStyles entfernt, so scheint es zu funktionieren.