Nun habe ich die "System.Memory.dll" manuell in das das Verzeichnis kopiert.
Der Simulator wird zwar wieder gestartet, was schon mal erfreulich ist, aber jetzt bekomme ich den Folgenden Fehler, der sagt das die DLL in verschiedenen Verzeichnissen vorhanden ist.
Fehlermeldung:
Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Warnung The assembly 'System.Memory.dll' was loaded from a different path than the provided path (provided path:
/Users/KKirchhoff/Library/Caches/Xamarin/mtbs/builds/App.iOS/6a370e008f8dfc41a667f7e3d7c5adb3/bin/iPhoneSimulator/Debug/System.Memory.dll, actual path:
/Library/Frameworks/Xamarin.iOS.framework/Versions/11.14.0.14/lib/mono/Xamarin.iOS/Facades/System.Memory.dll). App.iOS
Mache ich etwas grundlegendes falsch?
Hallo zusammen,
ich habe heute auf meinen Mac ein Update für Xamarin Forms (aktuelle Version) durchgeführt. Seither bekomme ich, wenn ich auch VS 2017 (Windows) ein IOS App starten will folgenden Fehler:
Fehlermeldung:
"Can not resolve reference: /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/Xamarin.iOS/Facades/System.Memory.dll"
Ich habe es bereits mit einen ganz neuen Projekt versucht. Ich habe auch Visual Studio auf dem MAC neu installiert. Doch im angegeben Verzeichnis ist die Datei "System.Memory.dll" nicht zu finden.
Hat jemand eine Idee, woran das liegt bzw. wie man den Fehler korrigieren kann.
Wenn die ich IOS App auf dem MAC starte gibt es kein Problem.
Besten Dank
Hallo zusammen,
ich verwende für die Validation Attribute wie z. B.
[EmailAddress(ErrorMessageResourceType = typeof(Resx.ErrorMessages), ErrorMessageResourceName = "EMailAdressNotValid")]
was grundsätzlich funktioniert.
Nur bei dem Attribut
[Compare(nameof(AccountPassword))]
wird kein Validation Fehler ermittelt.
Ist das evtl. ein bekannter Fehler oder mache ich da etwas falsch?
Besten Dank
Hallo zusammen ich versuche gerade eine Extension zur Localization zu schreiben, bei der ich anhand des View-Names die entsprechende "Resx" Datei laden möchte.
Konkret suche ich eine Möglichkeit, den Namen der View zu ermitteln (ContentPage etc.), zu dem jeweiligen Property welches ich über IProvideValueTarget ermittelt habe.
[ContentProperty("ResourceKey")]
public class LocExtension : IMarkupExtension
{
public LocExtension() { }
public LocExtension(string resourceKey)
{
ResourceKey = resourceKey;
}
public string Text { get; set; }
public string ResourceKey { get; set; }
public object ProvideValue(IServiceProvider serviceProvider)
{
IProvideValueTarget target = serviceProvider.GetService(typeof(IProvideValueTarget)) as IProvideValueTarget;
BindableObject targetObject;
BindableProperty targetProperty;
if (target != null && target.TargetObject is BindableObject && target.TargetProperty is BindableProperty)
{
targetObject = (BindableObject)target.TargetObject;
targetProperty = (BindableProperty)target.TargetProperty;
}
else
{
return this; // magic
}
return null;
}
}
Hallo zusammen,
ich beschäftige mich schon seit geraumer Zeit mit Xamarin Crossplattform Apps. Emulatoren für Adroid und IOS habe ich gefunden bzw. die funktionieren. Wenn ich allerdings die UWP Variante im Simulator starte, wird eine komplette Windows Maschine simuliert und nicht wie gewünscht nur ein Windows Mobil Device. Versuche ich dieses UWP Projekt auf ein physikalischen Device zu starten bekomm ich folgende Fehlermeldung:
„Ihr Bereitstellungsziel benötigt die Windows Universal Runtime Version 10.0.16299.0 oder höher, um diese Anwendung bereitstellen zu können. Momentan ist Version 10.0.15254.401 installiert.
Aktualisieren Sie Ihr BS oder verwenden Sie ein alternatives Bereitstellungsziel mit der entsprechenden Version.“
Allerdings in mein Microsoft Lumia auf dem aktuellen Stand (Windows 10 Mobile)
Starte ich jedoch ein reines UWP Projekt, dann werden mir diverse Windows Mobile Emulatoren zur Auswahl zur Verfügung gestellt. Es ist außerdem Möglich, die UWP-App auf ein physikalischen Device zu starten.
Ich gehe mal davon aus, das es an den verwendeten Net Frameworks liegt, das eine basiert auf Net.Core und das auf NetStandart.
Nur was muss ich machen, damit meine Xamerin Crossplattform App auch auf meinem Microsoft Lumina läuft bzw. ich einen entsprechenden Emulator verwenden kann. Wo kann man diese herunterladen und wie kann ich das Lumia auf eine neue Windows Universal Runtime Version 10.0.16299.0 oder höher updaten oder sollte/muss man auf Windows 10 Mobile verzichten?
Danke für Eure Unterstützung.
Leider hat das nicht geklappt 😦
ich weiß auch nicht mehr wonach ich suchen soll, alle Hinweise führen ins leere.
Vielleicht hat ja noch jemand ein Idee
Besten Dank
Hallo zusammen,
habe folgendes Problem, wann immer ich versuche eine IPhone App in Visual Studio 2017 zu Debuggen (F5) bekomme ich den Fehler:
Fehlermeldung:
"Wählen Sie ein gültiges Gerät aus, bevor Sie die Anwendung ausführen"
Jedoch ist die Liste der Geräte quasi leer, es steht ausschließlich der Simulator zur Verfügung.
Die Verbindung zu meinem Mac Mini klapp. Ich kann auch von Windows VS2017 den Simulator auf dem Mac Mini start.
Mein aktuelle Konfiguration:
Windows:
Visual Studio 2017 Professional 15.6.4
Xamerin 4.9.0.752
Xamerin.IOS und Xamerin.Mac.SDK 11.8.1.28
Mac:
Visual Studio für Mac 7.4.1.48
Xamarin ISS 11.8.1.28
Xamarin.Mac 4.2.1.28
Kennt jemand das Problem und hat eine Lösung für mich ?
besten Dank
Hallo Abt,
danke für die Antwort. Das hilft mir schon mal gut weiter um das ganze etwas besser einordnen zu können.
Mein Ziel ist es, den Rest Service Plattform übergreifend laufen zu lassen. Die Idee mit der Basic Basic Authentication stamm - wie bereits erwähnt - von einer bestehenden Anwendung. Dort wurde via Basic Authentication auf den Rest Service zugegriffen.
Ich werde mir dass jetzt noch einmal genauer anschauen.
Besten Dank,
Es geht ausschließlich um die Art und Weise wie du Antwortest. Das ist alles!
Gerade, wenn man am Anfang einer Problemstellung steht, kann es durchaus vorkommen, das bereits für die Fragestellung die notwendige Information fehlt. Wie gesagt ich bin gerade am Anfang des Themas.
Werde mir gern alles anschauen worauf Ihr mich hingewiesen habt.
Nach meinem Verständnis geht es in meinem Fall um .Net Core und nicht um ASP .Net Core. Ich möchte lediglich einen Rest Service schreiben (umschreiben) um mich in diesem Thema einzuarbeiten.
Warum das hier nicht die Richtige Forum bereich soll, ist mir auch nicht klar, ich dachte es handelt sich um Web Technologien.
Erstmal vielen Dank für Eure antworten.
Ich bin was .NET Core / ASP.NET Core noch in den Anfängen. Sorry das ich mir erlaubt habe hier eine Frage zu stellen! @Abt Ich finde so sollte man ein einem Forum auf Fragen nicht Antworten. Wenn ich schon alles wüsste bräuchte ich keine Unterstützung. Du kommst sehr arrogant rüber. Sorry für die deutlichen Worte!
Es handelt sich hier lediglich um Gehversuche. Ichversuche einen bestehenden Rest Full Service (noch mit Basic Auth) auf eine entsprechende Core Variante zu portieren. Gern schaue ich mir mal IdentityServer4 an.
Hallo zusammen,
Ich habe mir eine Middelware geschreiben um BasicAuthorization zum implementieren.
Dabei habe ich folgendes Problem. Wann immer ich "await context.SignInAsync(AUTHENTICATION_SCHEME, userPrincipal)" ausführe und anschließend auf context.User.Identity.IsAuthenticated abfrage, ist das Ergebnis = False.
Hier der Code:
public async Task Invoke(HttpContext context)
{
if (IsBasicAuthorization(context))
{
var username = ExtractUserCredentials.GetUsername(context);
var password = ExtractUserCredentials.GetPassword(context);
// if (username == "test" && password == "test")
if (IsAuthentic(username, password))
{
var claims = GetClaims(username);
var userIdentity = new ClaimsIdentity("Custom");
userIdentity.AddClaims(claims);
ClaimsPrincipal userPrincipal = new ClaimsPrincipal(userIdentity);
context.User.AddIdentity(userIdentity);
await context.SignOutAsync(AUTHENTICATION_SCHEME);
await context.SignInAsync(AUTHENTICATION_SCHEME, userPrincipal,
new AuthenticationProperties
{
ExpiresUtc = DateTime.UtcNow.AddMinutes(45),
IsPersistent = false,
AllowRefresh = false
});
var test = context.User.Identity.IsAuthenticated;
await _requestDelegate.Invoke(context);
}
else
{
context.Response.StatusCode = 401; //Unauthorized
return;
}
}
else
{
// no authorization header
context.Response.StatusCode = 401; //Unauthorized
return;
}
}
Danke für die Unterstützung
Es geht hier nicht um Menu (WPF oder so) sondern um das Menu in Visual Studio.
aber trotzdem Danke. Dann hoffe ich mal das mir jemand anderes weiter helfen kann.
Hallo,
ich bin dabei eine Extention (VISX Package) für Visual Studio 2015/2017 zu schreiben und habe ein eigenes Menu.
Nun würde ich gern zwischen zwei Menupunkten einen Separator haben.
ich habe viele Beispiele für Menus etc. gefunden aber kein Beispiel wie das mit dem Separaor geht.
Kann mir jemand sagen bzw. zeigen wie das geht ?
Danke
Hallo,
ich habe folgendes Problem, ich möchte via VisualState.Trigger und VisualState.Setter, das Style Property setzen und zwar von Style selbst.
Geht das überhaupt ?
Meine Idee war:
Setter Target="this.Style" Value="{StaticResource PART_DesktopStyle}" />
aber leider wird "this" nicht erkannt.
<Style TargetType="controls:jb24NavigationShell">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="controls:jb24NavigationShell">
<Grid x:Name="PART_LayoutRoot" >
<Grid x:Name="PART_TitleGrid" Background="{ThemeResource jb24AccentBrush}" Visibility="Visible" VerticalAlignment="Top">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="DeviceStates">
<VisualState x:Name="PART_Desktop">
<VisualState.StateTriggers>
<triggers:DeviceTrigger DeviceFamily="Desktop" />
<triggers:DeviceTrigger DeviceFamily="IoT" />
<triggers:DeviceTrigger DeviceFamily="SurfaceHub" />
<triggers:DeviceTrigger DeviceFamily="Other" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="this.Style" Value="{StaticResource PART_DesktopStyle}" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="PART_Tablet">
<VisualState.StateTriggers>
<triggers:DeviceTrigger DeviceFamily="TabletLandscape" />
<triggers:DeviceTrigger DeviceFamily="TabletPortrait" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="this.Style" Value="{StaticResource PART_DesktopStyle}" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="PART_Mobile">
<VisualState.StateTriggers>
<triggers:DeviceTrigger DeviceFamily="PhoneLandscape" />
<triggers:DeviceTrigger DeviceFamily="PhonePortrait" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="this.Style" Value="{StaticResource PART_DesktopStyle}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Grid>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
[
Du hast leider das Problem nicht ganz verstanden vermute ich, es hat hier weniger etwas mit Schichtentrennung zu tun, sondern damit, dass ich ein Framework verwende (bzw. erstelle) welches die Funktion zur Sprachsteuerung hat.
Dieses Framework wird bereits von der Presentation.DLL via Verweis verwendet. Ich kann schwerlich einen Verweis von Application (was das Framework darstellt) zusätzlich auf Presentation verweisen. Das wäre das ein recusiever Verweis.
Danke für die Antwort.
Nur was macht man, wenn die Tools für die Sprachverwaltung in einem Framework uns somit in einer anderen DLL liegen.
Das die Resourcen selbst in der Presentation Schicht halte ich auch für richtig.
Folgender Sachverhalt:
Alle meine „Resource.resw” befinden sich in der Presentation.dll im Verzeichnis „/Resources/de-DE/ShellView.resw“ bzw. „/Resources/en-US/ ShellView.resw“. In der Application.dll befinden sich alle Methoden zur Sprachverwaltung wie z. b. Sprache wechseln.
Die „Presentation.dll“ hat einen Verweis auf „Application.dll“.
Nun möchte via in der Application.dll auf die Resourcen der „ShellView.resw“ zugreifen.
Mein Ansätze:
ResourceLoader loader = ResourceLoader("Assembly/ResourceFile");
ResourceLoader loader = ResourceLoader.GetForCurrentView(„Presentation/ShellView“
ResourceLoader loader loader = ResourceLoader("Presentation.Lib/Resources");
Jedes mal bekomme ich die Fehlermeldung, dass die ResourceMap nicht gefunden wird.
Kann es daran liegen, dass die Application.lib keinen Verweis auf Presentation.lib hat. Das soll natürlich auch nicht sein.
Doch, das Problem ist oder war, dass ich nicht genau wusste wonach ich suchen muss.
Aber danke trotzdem für die Hilfe.
Noch eine kurze Frage dazu, was für eine Bedeutung hat der Frame Counter?
vielen Dank
kann mir jemand sagen, wie man (unter Visual Studio 2015) das Koordinaten System oder was es auch immer ist abstellt ?
Es taucht immer beim Debugger auf und stört mich irgendwie!
Ich habe ein kleinen Screenshot erstellt.
Wäre gut wenn mir jemand sagen kann wie ich das abstelle.
Danke
Danke klappt, wer lesen kann ist klar im Vorteil hatte ich mir zwar schon mal angeschaut aber irgendwie ging es gestern nicht ...
Danke
Ich verwende Visual Studio 2015 unter habe eine Windows Universal App zu entwickeln (UWP) unter Windows 10.
Ich greife wie folgt auf die Ressource zu
<Viewbox HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Row="0" >
<TextBlock x:Uid="Title" Text="Hello" Foreground="Aqua" />
</Viewbox>
<Button x:Uid="ExitButton" Content="Beenden" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Top" />
<TextBlock x:Uid="Message" Text="Original" Grid.Row="2" />
via x:UId definiere ich das Flag, welches in der *.resw Datei steht.
z.B. x:Uid="Title", in der +,resw Datei steht dann unter Name auch Titel.Test, das bedeutet, der der Wert für das Property Text stehen soll, Bei Titel.Forceground, wird die Textfarbe definert.
Danke für die schnelle Antwort 😃
Das heißt dann, dass in allen dieser *-resx nach den entsprechenden Strings gesucht wird ?
Um meine Windows 10 UWP App mehrsprachig zu machen, verwende ich bislang folgende Vorgehensweise:
Ich lege für jede Sprache im Verzeichnis "Strings" + "de-DE" oder + "en-US" eine Ressource Datei an.
Meine Frage ist, kann man auch unterschiedliche Ressourcen Dateien pro Sprache anlegen. Ich finde es sehr unübersichtlich alle Strings in eine Datei zu schreiben. Am liebsten wäre mir eine Lösung, pro View eine Ressourcen Datei.
Wenn möglich würde ich mich über ein Beispiel sehr freuen.
Besten Dank
Hallo und Danke für die Antworten.
Ich habe das überprüft und das Byte Array ist auch in dem Object vorhanden.
Ist die Aussage bzw. das Vorgehen :
Bytes können nicht als normalen Content übermittelt werden.
Du musst dazu einen eigenen REST Call absetzen und entsprechend auch einen eigenen REST Endpunkt in der API definieren (zB via Multipart).
doch nicht nötig? Reicht der Standard aus ?
MS SQL-Datenbank
Ich habe ein kleines Objekt, welches wie folgt aussieht:
public class CT_Konto()
{
public int Id { get; set; }
public Boolean IsSysAdmin { get; set; }
public string Login { get; set; }
public string Password { get; set; }
public string EMailAddress { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public byte[] Picture { get; set; }
....
}
Bist auf das Property Picture werden alles Daten in per Rest API übertrage und gespeichert. Das Property ist mit einem Bitmap gefüllt (als ByteArray). Übertrage wird das Objekt wie folgt:
private async Task<ResultObject> SaveUser(CT_Konto konto)
{
try
{
var userJson = JsonConvert.SerializeObject(konto);
var httpContent = new StringContent(userJson);
httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
var client = new HttpClient();
await client.PutAsync(HTTPURI_KONTO + konto.Id, httpContent).ConfigureAwait(false);
return new ResultObject(true, "");
}
catch (Exception ex)
{
return new ResultObject(false, ex.Message);
}
}
Was muss ich machen, damit auch das Picture Property übertragen und damit gespeichert wird.
Besten Dank
Halo ich bin dabei ein UWP-App unter Windows 10 zu schreiben und möchte gern, aus einem "Windows.UI.Xaml.Shapes.Path()" ein BitmapImage generieren. Wobei es mir darum geht, die Path.Data Eigenschaft im Code zu deviieren, diese dann aber als BitmapImage abzuspeichern.
Folgendes habe ich bisher hinbekommen, jedoch gefällt mir die Lösung noch nicht wirklich, da ich das genierte Path Objekt immer einmal anzeigen muss, um es anschließend mit "RenderTargetBitmap" zu erstellen.
Hier mal der Code, vielleicht kennt jemand eine andere und bessere Lösung.
Windows.UI.Xaml.Shapes.Path path = new Windows.UI.Xaml.Shapes.Path();
path.Data = PathMarkupToGeometry("M32,0L32,8.4920026 21.291016,17.120999 21.200989,17.195005 21.247009,17.232999 15.978027,21.478999 10.708008,17.232999 0,8.6020032 0,0.11100769 12.151001,9.904997 15.93103,12.947995 16.020996,12.874997 19.846008,9.7920056z");
path.Height = 100 ;
path.Width = 100;
path.Fill = new SolidColorBrush(Colors.Black);
path.Name = "PART_TempPath";
PART_BaseGrid.Children.Add(path);
RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap();
await renderTargetBitmap.RenderAsync(path, (int)path.Width, (int)path.Height);
PART_Target.Source = renderTargetBitmap;
PART_BaseGrid.Children.RemoveAt(PART_BaseGrid.Children.Count-1);
PART_Target.Source = renderTargetBitmap;
Hier die Methode um aus einen String eine Path.Data (Geometry) Objekt zu erstellen:
public Geometry PathMarkupToGeometry(string pathMarkup)
{
string xaml =
"<Path " +
"xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'>" +
"<Path.Data>" + pathMarkup + "</Path.Data></Path>";
var path = XamlReader.Load(xaml) as Windows.UI.Xaml.Shapes.Path;
// Detach the PathGeometry from the Path
Geometry geometry = path.Data;
path.Data = null;
return geometry;
}
)
Besten Dank für Eure Unterstützung
Hallo und besten Dank für die Antwort, war der richtige Hinweis!
wichtig ist, jedoch dass die Syntax bei
var files = await Package.Current.InstalledLocation.GetFilesAsync().AsTask().ConfigureAwait(false);
etwas von meinem Beispiel abweicht.
Hallo zusammen,
ich möchte unter Windows 10 (in einer Virtuellen Maschine) mit folgenden Methode die Verwendeten Assemblies auslesen. Doch in der Zeile mit "await" hängt sich das System auf ohne Timeout und ohne Fehlermeldung.
public static async Task<List<Assembly>> GetAssemblyList()
{
List<Assembly> assemblies = new List<Assembly>();
var files = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFilesAsync();
if (files == null)
return assemblies;
foreach (var file in files.Where(file => file.FileType == ".dll" || file.FileType == ".exe"))
{
try
{
assemblies.Add(Assembly.Load(new AssemblyName(file.DisplayName)));
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
}
return assemblies;
}
Besten Dank werde ich berücksichtigen
Hallo
ich suche eine Möglichkeit meine Images in einer RESW Datei zu speichern bzw.
zu lesen.
Das speichern klappt indem ich die Images aus der Solution in die RESW Datei ziehe.
Bei der RESX Datei, konnte man mit "ResourceManager.GetObject" das Objekt auslesen und weiter verarbeiten. Doch die Methode GetObject scheint es nicht mehr zu geben.
Lediglich GetString, aber damit komme ich leider nicht weiter.
Hat jemand eine Idee ?
Besten Dank
Hallo FZelle,
auch wenn man bei Euch manchmal das Gefühl hat eine Verbrechen begangen zu haben, nur weil etwas nicht richtig gelesen und verstanden hat.
Trotzdem vielen Dank, hat mir.
Hallo zusammen,
hat jedmand eine Idee, woran es liegen kann, dass ich eine UWP App nicht direnkt mit F5 in Visual Studio 2015 starten kann.
Ich bekomme imm die Meldung, dass die App erst bereitgestellt werden muss.
Was funktioniert ist, im Solutionen Explorer Rechte Maustaste aufs Projekt:
Debug - neue Instanz starten.
Habe ich etwas grundlegendes nicht verstanden?
Besten Dank
Hallo zusammen,
ich möchte einen Parameter (Type), den ich via GetParameters ermittelt haben als generischen Type weiterverwenden. Doch irgendwie klappt das umwandeln nicht.
Vielleicht hat ja jemand eine Idee, Besten Dank
MethodInfo executeMethod = GetMethod(controller, prop.Name);
ParameterInfo[] parms = executeMethod.GetParameters();
Type t = parms[0].ParameterType;
DelegateCommand<t> cmd = CreateDelegateCommand<t>(controller, executeMethod, canExecuteMethod);
Danke für die Antwort! kannst Du mir noch erklären bzw. einen Hinweis geben, wo bzw. wie man das konfiguriert.
Besten Dank
Hallo zusammen,
kann mir jemand sagen, wozu folgenden Verzeichnis obj\Debug angelegt wird. Es befindet sich im Root Verzeichnis des Projektes und wird immer automatisch erstellt.
Mein Problem ist, dass man dieses Verzeichnis nicht kopieren kann. Wenn ich z.b. das ganze Projekt auf einen USB Stick schiebe werden diese Dateien nicht mit kopiert.
Meine Vermutung ist, dass es irgendetwas mit der Code Analyse zu hat.
Aber vielleicht kann mir ja jemand weiterhelfen.
Besten Dank
Hallo,
ich habe ein VSPackage mit dem Assistenten erstellt. Sobald das Packes ausführe (im Debug Modus) bekomme ich nach dem ich die Visual Studio Instanz wieder beende folgenden Fehler:
Fehlermeldung:
System.Runtime.InteropServices.InvalidComObjectException wurde nicht behandelt.
Message: Ein Ausnahmefehler des Typs "System.Runtime.InteropServices.InvalidComObjectException" ist in mscorlib.dll aufgetreten.
Zusätzliche Informationen: Ein COM-Objekt, das vom zugrunde liegenden RCW getrennt wurde, kann nicht verwendet werden.
Starte ich das Package ohne Debugger, bekomme ich keine Fehlermeldung.
Lieder kann ich mit der Fehlermeldung nicht wirklich etwas Anfangen.
Wäre um jegliche Hilfe recht dankbar.
Hallo zusammen,
Das Problem hat sich erledig, hier die Lösung:
public bool CanShowContact()
{
return true;
}
public void ShowContact()
{
System.Windows.MessageBox.Show("ShowContact erfolgreich aufgerufen!");
}
public bool CanShowContactWithParameter(object param)
{
return true;
}
public void ShowContactWithParameter(string _inName)
{
System.Windows.MessageBox.Show("ShowContact erfolgreich aufgerufen mit "+_inName+" !!" );
}
public MainWindow()
{
InitializeComponent();
btnSave.Command = CreateCommand(_contact, "ShowContact", "CanShowContact");
btnCancel.Command = CreateCommand<string>(_contact, "ShowContactWithParameter", "CanShowContactWithParameter");
btnCancel.CommandParameter = "Hans ist der Parameter";
}
{
Type thisType = tagetObj.GetType();
MethodInfo theMethod = thisType.GetMethod(methodName);
MethodInfo canMethod = thisType.GetMethod(canMethodName);
Action action = (Action)Delegate.CreateDelegate(typeof(Action), tagetObj, theMethod);
Func<bool> func = (Func<bool>)Delegate.CreateDelegate(typeof(Func<bool>), tagetObj, canMethod);
return new DelegateCommand(action, func);
}
private DelegateCommand<t> CreateCommand<t>(object tagetObj, string methodName, string canMethodName)
{
Type thisType = tagetObj.GetType();
MethodInfo theMethod = thisType.GetMethod(methodName);
MethodInfo canMethod = thisType.GetMethod(canMethodName);
Action<t> action = (Action<t>)Delegate.CreateDelegate(typeof(Action<t>),tagetObj, theMethod);
Func<t,bool> func = (Func<t,bool>)Delegate.CreateDelegate(typeof(Func<t,bool>), tagetObj, canMethod);
return new DelegateCommand<t>(action,func);
}
Danke Dir erstmal für Deine Antwort. Folgendes habe ich vor. Ich speichere in einer Datenbank (zur Menusteuerung) den Namen einer Methode. Aus dieser Methode möchte dann eine Action generieren um diese dem Command Property eines MenuItems zuzuseisen. Das ganz geschieht dann via MethodInfo und DelegateCommand.
Nun kann es sein, dass eine Mehtode Parameter hat, und genau da is mein Problem, ich weiss nicht wie ich das bei der Action machen muss.
Action action = (Action)Delegate.CreateDelegate(typeof(Action), tagetObj, theMethod);
Func<bool> func = (Func<bool>)Delegate.CreateDelegate(typeof(Func<bool>), tagetObj, canMethod);
Bei Func<bool> ... funktioniert es .
Danke, vielleicht fällt ja jemanden noch etwas ein .
Hallo,
Über MethodInfo und CreateDelegate kann ich eine Action erstellen und kann diese auf das das CommandProperty eines MenuItems setzen. Das ganze funktionert gut, so lange die aufzurufende Methode keine Parameter hat. Was muss ich machen, damit das ganz auch funktioniert wenn Parameter im Spiel sind.
Hier der SourceCode:
private DelegateCommand CreateCommand(object tagetObj, string methodName, string canMethodName)
{
Type thisType = tagetObj.GetType();
MethodInfo theMethod = thisType.GetMethod(methodName);
MethodInfo canMethod = thisType.GetMethod(canMethodName);
Action action = (Action)Delegate.CreateDelegate(typeof(Action), tagetObj, theMethod);
Func<bool> func = (Func<bool>)Delegate.CreateDelegate(typeof(Func<bool>), tagetObj, canMethod);
return new DelegateCommand(action, func);
}
public bool CanShowContact()
{
return true;
}
// hiermit geht es
public void ShowContact()
{
System.Windows.MessageBox.Show("ShowContact erfolgreich aufgerufen!");
}
public bool CanShowContactWithParameter()
{
return true;
}
// hiermit geht es nicht
public void ShowContactWithParameter(string _inName)
{
System.Windows.MessageBox.Show("ShowContact erfolgreich aufgerufen mit "+_inName+" !!" );
}
Danke für die Unterstützung
Hi Abt,
ja das hab ich mir auch gedacht und habe eine andre Lösung gefunden !!!
Danke
Also danke für die Antworten, auch wenn ich den letzen Beitrag nicht als Antwort verstehe!
Ich fasse es einfach mal so zusammen, ich möchte eine Komposte (UserControl)
eine Datenquelle mitgeben, das ist mehr oder weniger alles. Und diese Datenquelle dann innerhalb der Komponente verwenden.
Danke erstmal für die Antwort. Ich möchte dynamisch abfragen (LINQ) erstellen und zwar für eine Komponente, die via DbContext Daten aus einer DB laden kann.
Alternativ hatte ich gedacht ich definiere ein DepencyProperty aber das geht irgendwie mit DbSet auch nicht, vermutlich aus dem gleichen Grund.
Mir würde es auch ausreichen, wenn ich an Names die entsprechende Instanz ermitteln könnte.
Hallo,
ich habe folgende Problem, ich möchte eine Instance eines DBSet Objektes anhand des Names ermitteln bzw. erstellen.
Ich bin folgenden Weg bisher gegangen, doch leider klappt das mit dem zuweisen nicht!
private DbSet GetDBSet(DbContext _inDbContext, string _inDbSetName)
{
DbSet dbSet = null;
var property = _inDbContext.GetType().GetProperty( _inDbSetName );
if (property == null || !property.CanRead)
{
throw new ArgumentException("DbSet named " + _inDbSetName + " does not exist." );
}
else
{
// I need a instance of the property (DbSet Type)
dbSet = (DbSet)property;
}
return dbSet;
}
Ich habe schon verschiede Weg probiert, auch der Weg über Activator.CreateInstance funktioniert leider nicht. Das liegt wohl daran, das DBSet keinen Constructor hat.
private static Object GetObjectInstance(string _inObjectName, Assembly _inAssembly)
{
Type typeToCreate = _inAssembly.GetTypes().Where(t => t.Name == _inObjectName).First();
Object newWindowHandle = (Activator.CreateInstance(typeToCreate) as Object);
return newWindowHandle;
}
Vielleicht hat ja jemand eine Idee, wie ich vorgehen kann.
Besten Dank
Hallo Ich habe folgendes Problem, vielleicht kann mir ja von Euch jemand einen Tip geben. Ich habe ein DataTemplate für eine Combobox erstellt und möchte nicht nur auf Properties via Bindung zu greifen sondern auch für Events. Geht das überhaupt ?
#region Events
public event SelectedCellsChangedEventHandler MySelectionChangedEvent;
#endregion
<DataTemplate x:Key="MyComboBoxDataTemplate" DataType="{x:Type local:jb24Control}">
<ComboBox x:Name="PART_TextBox"
SelectedItem="{Binding Path=SelectedItem, RelativeSource={RelativeSource AncestorType={x:Type local:jb24Control}, Mode=FindAncestor}}"
SelectedValue="{Binding Path=SelectedValue, RelativeSource={RelativeSource AncestorType={x:Type local:jb24Control}, Mode=FindAncestor}}"
SelectedValuePath="{Binding Path=SelectedValuePath, RelativeSource={RelativeSource AncestorType={x:Type local:jb24Control}, Mode=FindAncestor}}"
SelectedIndex="{Binding Path=SelectedIndex, RelativeSource={RelativeSource AncestorType={x:Type local:jb24Control}, Mode=FindAncestor}}"
DisplayMemberPath="{Binding Path=DisplayMemberPath, RelativeSource={RelativeSource AncestorType={x:Type local:jb24Control}, Mode=FindAncestor}}"
<!--Hier ist mein Problem -->
SelectionChanged="{Binding Path=MySelectionChangedEvent, RelativeSource={RelativeSource AncestorType={x:Type local:jb24Control}, Mode=FindAncestor}}"
ItemsSource="{Binding Path=Value,Mode=TwoWay, RelativeSource={RelativeSource AncestorType={x:Type local:jb24Control}, Mode=FindAncestor}}">
</ComboBox>
</DataTemplate>
Hallo zusammen,
ich möchte einen String (mit folgenden Format "123.22" in einen Dezimal Typ konvertieren und anschließen wieder mit String.Format erneut als String formatieren.
Als Ergebnis erhalt ich dann immer den Ursprungswert mit 100 Multipliziert.
Also aus 123.66 wird dann 12366.00. Gibt es einen anderen Weg oder muss ich den String zerlegen und wieder zusammen setzen?
string test = "122.66";
decimal dec = System.Convert.ToDecimal(test);
RetValue = String.Format(_formatCulture, _formatString,System.Convert.ToDecimal(test));
Hi MrSparkle,
ich bin gerade dabei eine Textbox zu entwickeln die für verschiedene Formate
(Währung, Prozent etc. ) verwendet werden soll. Un ursprünglich wollte ich im OnLoad einige dinge setzen. Aber davon bin ich mittlerweile weg.
Trotzdem Danke Dir für Deine Unterstützung.
Hallo MrSparkie,
danke für Deine Antwort und den Hinweis auf den Tippfehler!
Aber eines sollte doch auch klar sein, wenn ich wüsste was das Problem ist, würde ich sicher nicht das Problem hier reinstellen. Die Compiler Meldungen habe ich mir natürlich angesehen.
Ich habe mich vielleicht etwas falsch ausgedrückt. Ich würde gern in meinem Control das das Loaded Ereignis auslösen .
Hallo,
Bin gerade dabei mir eine eigene Textbox (abgeleitet von der Standard Textbox) zu entwickeln und würde gern den OnLoaded Event der TextBox überschreiben, doch leider scheint es den Irgendwie nicht zu geben oder was mache ich da mal wieder falsch?
public override void OnLoadrd(object sender, RoutedEventArgs e)
{
base.OnLoadrd(e);
}