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 Robin0
Thema: CommandParameter MultiBinding richtig übergeben
Am im Forum: GUI: WPF und XAML

Achso, ja

TemplateValueHost ist ein Datagrid.
Und das mit dem Parameter hab ich mir mal ofen gelassen desshalb die abfrage.

Ich bekomme ja die richtigen Daten im Converter.

Ich bekomme nur bei meinem Command nix.

Es wär ja schoneinmal ein fortschritt, wenn ich überhaupt daten meinem Command übergeben könnte.

Thema: CommandParameter MultiBinding richtig übergeben
Am im Forum: GUI: WPF und XAML

Hi @Coffeebean,

mir ist bewusst, dass ein Command nur ein CommandParameter bekommen kann, aus diesem grund ja auch der Converter der einfach die werte übergeben soll daraus wird dann 1 wert, undzwar ein object Array.

Aber wie geasgt mein Command bekommt ja als Parameter ein Object array mit 2 elementen... da stehen aber nur null werte drin.
[edit]
Und der Converter wird beim Commandaufruf nicht aufgerufen
[/edit]

Thema: CommandParameter MultiBinding richtig übergeben
Am im Forum: GUI: WPF und XAML

Hallo,

Ich versuche gerade einem MenueItem.Command mehrere Parameter zu übergeben.

Mein problem ist, das der Converter bei den PropertyChanged ereignissen der gebundenen Daten schon aufgerufen wird, aber bei dem Command aufruf nicht. Ich bekomme als Parameter immer ein object[2] array mit null Daten zurück(Im Command) der Converter wird dabei nicht aufgerufen ).

Nun, wie bekomme ich die CommandParameter an den Command übergeben??

Danke für eure hilfe :)


<MenuItem Command="{Binding CRemoveTemplate}"
                      Header="_Delete" >
                    <MenuItem.CommandParameter>
                        <MultiBinding Converter="{StaticResource mbCon}">
                            <Binding />
                            <Binding Path="SelectedIndex" ElementName="TemplateValueHost"/>
                        </MultiBinding>
                    </MenuItem.CommandParameter>
<MenueItem/>
DerConverter:


    public class MultiBindingConverter : IMultiValueConverter
    {
        public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
                if (parameter != null)
                {
                    Array.Resize<object>(ref values, values.Length + 1);
                    values[values.Length - 1] = parameter;
                }
            return values;
        }
}

Thema: C++ DllImport 2D Array Daten nach C# 2D Array ?
Am im Forum: Rund um die Programmierung

ich würde mal grob sagen, dass das struct "MP5" nicht derselbe datentyp ist wie der den du zurück bekommst.

Tipp: speicher das ganze in ein object, setz ein Haltepunkt und schau die den Datentyp mal genauer an den du da zurück bekommst.

Edit:
Ich weiß jetz nich wie das in c++ is, aber schau dir mal den unterschied zwischen "Jagged Arrays" und "2D Arrays" an (Jagged[][];2D[,]).

Thema: RFID Funktionsweise (Wie programmieren)
Am im Forum: Rund um die Programmierung

Windows Phone hat ne Libary zu RFID und NFC.

Kann dir gerade nur leider sagen das .NET sowas mitbringt.

(Auf MSDN war mal ne PDF zum downloaden "inselbuch"[von diesem Jahr auf jeden fall] oder so hieß das, da war ein Artikel dazu.

Thema: Wie funktioniert FrameworkElement?
Am im Forum: GUI: WPF und XAML

Darauf kann es keine Antwort geben weil die Klasse "FrameworkElement" hauptsächlich dazu gedacht ist um davon abzuleiten, es werden die mit der Klasse haupsächlich grundlegende Strukturen eines FarmeworkElements zur verfügung gestellt.

Ich finde es bedeutend übersichtlicher mit dem UIElement zu arbeiten, die basisklasse vom FrameworkElement

Thema: Linq to SQL: NULL in Datenbank übertragen
Am im Forum: Datentechnologien

ich denke er meint:


public static string nullen (string x)
        {
              return x == "" ? "null":x;  
        }

Thema: Funktion ändert 2 Instanzen einer Klasse auf einmal [==> es gibt nur eine Instanz]
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Versuchsmal mit MemberwiseClone() in deiner klasse

Thema: HierarchicalDataTemplate und static Notes
Am im Forum: GUI: WPF und XAML

Du könntest natürlich auch das Template überschreiben, und jedem Item erst 2 ChildItems anhängen und dann den kontext, das wäre aber sehr statisch, dh. Du könntest die eigenschaften des Items nur da festlegen.

Thema: HierarchicalDataTemplate und static Notes
Am im Forum: GUI: WPF und XAML

musste per hand machen, oder wenn du von einer basisklasse erbst diese in der basisklasse festlegen

Thema: Tabelle auf Knopf druck abrufen
Am im Forum: Datentechnologien

Dann lad deine Tablle erst beim Knopfdruck und nicht vorher.

Oder regel das über die #WinForms IsVisible/#WPF Visibility eigenschaft.

Thema: HierarchicalDataTemplate und static Notes
Am im Forum: GUI: WPF und XAML

Öhm, wenn ich dass jetz richtig verstandenb habe möchtest du das deine ""Connection"-Notes""
immer 2 Feste Child item haben.

Wenn du unterschiedliche Klassen zur darstellung verwendest, leg das doch einfach im Konstuktor fest.


public Connection()
{
   Connections.Add(new Connection(....));
   Connections.Add(new Connection(....));
}

Thema: CustomAttribute eines Feld auslesen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Soweit war ich auchschon XD.
Ich möchte aber das attribut außerhalb des getters und setters auslesen.
Genau da stellt sich mein problem, wie komme ich außerhalb des getters und setters an das Attribut?

Thema: Berechnung aller Permutationen einer Liste
Am im Forum: Rund um die Programmierung

Wenn du die Liste mit den doppeltern werten schon hast, kannst du die ja auch einfach begrenzen:

IEnumerable<ElementTyp> Distinct = Liste.AsEnumerable().Distinct();

Und das ganze vereinfacht:

var myCartesianProduct = (from x in Liste
from y in Liste
select new { x, y }).Distinct();

Thema: CustomAttribute eines Feld auslesen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich hätte villeicht sagen solln das ich .Net 4 verwende.
(Ich verwende die attribute im grundegenommen eigentlich für die Eigenschaften, hab nur beim rumprobiren auf beides erstmal ein attribut gelegt)


Die sache ist die:
Ich will das das Attribut des elements das für das die Extension angewendet wird, nicht für ein unterelement, ausdiesemgrund kommt man mit dem typen ansich auch nich weiter. Dann könnte ich das Attribut ja auch an die Klasse binden.

Thema: CustomAttribute eines Feld auslesen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

puh, ja was soll ich jetz in source und was in value schreiben?
wenn wir mal davon ausgehen das ich das aus GetTarget<T>(this T myObject){} aufrufen werde

Thema: CustomAttribute eines Feld auslesen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

Ich möchte gerne den Feldern einer klasse ein Attribut mitgeben:
(*Funktioniert auch soweit)


   public SampleClass
   {
      private int m_Var;
      [Test("Hallo")]
      public int Var
      {
         get{return m_Var;}
         set{m_Var = value;}
      }
      //.
      //.
      //.
   }

[AttributeUsage(AttributeTargets.Field)]
    public class TestAttribute : Attribute
    {
        public string Target = "";

        public SerialisationTargetAttribute(string _Target)
        {
            Target = _Target;
        }
    }

Nun würde ich dieses Attribut gerne in einer in einer Extension auslesen ohne noch weitere werte übergeben zu müssen.
Ich bekomm das so nicht hin


public static class Extensions
{
public static string GetTarget<T>(this T myObject)
{
//---Hier muss ich immer den Parent und den namen des Attributs mitgeben -.-
// (Suboptimal) es würde schon reichen wenn ich den namen schon nichmehr mitgeben muss

//return (Parent.GetType().GetField("Var").GetCustomAttributes(typeof(TestAttribute ),false)[0] as TestAttribute ).Target;

return "";//my z.B. Hallo
}

Danke im vorraus wenn jemand ne gute idee hat.

Thema: Variable ohne Bindung in xaml übergeben
Am im Forum: GUI: WPF und XAML

Dann halten wir fest, es funktioniert nicht, das hatte ich schon befürchtet, dann muss ich mir was anderes überlegen.

Trotzdem danke an alle die sich der Frage angenommen haben. :)

Thema: Button in DataGrid Ecke
Am im Forum: GUI: WPF und XAML

Ich würd jetz mal grob sagen den Style vom ScrollViewer, da der über die komplette rechte Seite des DataGrid´s geht und dein icon verdecken würde.

Thema: Variable ohne Bindung in xaml übergeben
Am im Forum: GUI: WPF und XAML

Ich glaube ihr habt meine frage nicht richtig verstanden.

Ich suche einen weg in WPF eine eigenschaft zu übergeben, ohne ein DataBinding erstellen zu müssen.

Ob das sinvoll ist oder nicht sei einmal mal dahingestellt.
Ich kann die Validierung auch in einer Funk<in T,out result> veranstalten, und die übergeben, dazu müsste ich aber auch ohne Binding eigenschaften übergeben können.

Die tatsache das ich nicht weiß wie das geht stört mich, aus diesem grund hab ich die frage ja gestellt.

Der grund für die verwendung der Validate klasse ist die hohe widerverwertbarkeit, ich kann die klasse später über ein TFS öffentlich machen und in anderen projekten verwenden. Zudem hab ich somit den Luxus die übersichtlichkeit meines ViewModels zu verbessern.

Thema: Variable ohne Bindung in xaml übergeben
Am im Forum: GUI: WPF und XAML

Ich hätt trotzdem gern gewusst wie ich ne variable ohne binding übergebe. Die angeführte Validation is nur eins von vielen beispielen wo dies hilfreich wär.

Thema: Variable ohne Bindung in xaml übergeben
Am im Forum: GUI: WPF und XAML

Ja, ich weiß das will es deshalb ja nich verwenden.

Thema: Variable ohne Bindung in xaml übergeben
Am im Forum: GUI: WPF und XAML

Das will ich doch die ganzezeit machen, nur würde ich meiner validation gerne eine Liste mitgeben, die sich in meinem ViewModel befindet.

eien DependencyProperty kann ich nicht verwenden, da ich dann von DependencyObject erben müsste, meine Validationsklasse erbt aber schon von ValidationRule.

so sieht meine Validationsklasse aus(unnötiges entfernt)
Der aufruf steht ja schon oben, ich möchte gerne PermissibleValues eine Liste übergeben, die sich in mienem MainviewModel befindet


  class Validation : ValidationRule
    {
        private object _PermissibleValues;
        public object PermissibleValues
        {
            get { return _PermissibleValues; }
            set { _PermissibleValues = value; }
        }

        public static int updateValidates = 0;
        public static void UpdateSource()
        {
            updateValidates++;
        }
        int valUpdateIndex = 0;

        private string _MvvMAddress;
        public string MvvMAddress
        {
            set
            {
                try
                {
                    _MvvMAddress = value;
                    Type _Type = typeof(MainViewModel);
                    PropertyInfo _PInfo = _Type.GetProperty(value);
                    PermissibleValues = _PInfo.GetValue((new MainViewModel()), null);
                }
                catch { }
            }
        }

        private string _Valuepath;
        public string Valuepath
        {
            get { return _Valuepath; }
            set { _Valuepath = value; }
        }

        public Validation(){ }

        public List<object> GetValues(object Val, string PropName)
        {
            List<object> MyList = GetCollection(Val);
            List<object> _out = new List<object>();

            foreach (var item in MyList)
            {
                Type _Type = item.GetType();

                PropertyInfo _PInfo = _Type.GetProperty(PropName);

                _out.Add(_PInfo.GetValue(item, null));
            }

            return _out;
        }

        public List<object> GetCollection(object Val)
        {
            Type _Type = Val.GetType();

            PropertyInfo _PInfo = _Type.GetProperty("Item");

            PropertyInfo _PInfoFieldCount = _Type.GetProperty("Count");
            int FieldCount = (int)_PInfoFieldCount.GetValue(Val,null);

            List<object> _out = new List<object>();

            for (int i = 0; i < FieldCount; i++)
            {
                _out.Add(_PInfo.GetValue(Val, new object[]{i}));  
            }
            
            return _out;
        }


        private StringComparison _StringComparisonType = StringComparison.OrdinalIgnoreCase;
        public StringComparison StringComparisonType
        {
            get { return _StringComparisonType; }
            set { _StringComparisonType = value; }
        }


        public ValidationResult Validate(object value, CultureInfo cultureInfo)
        {

            int index = 0;
            try
            {
                foreach (var item in GetValues(PermissibleValues, Valuepath))
                {
                    if (item.Equals(value))
                        index++;
                }
            }
            catch (Exception e)
            {
                return new ValidationResult(false, "Illegal Input or " + e.Message);
            }

            if (index == 0)
            {
                return new ValidationResult(false, "Request does not exist!");
            }
            if (index == 1)
                return new ValidationResult(true, null);
            if (index > 1)
            {
                return new ValidationResult(false, "Not unique!");
            }


            return new ValidationResult(false, "\t!!!!!\t");
        }
    }

(Eigentlich habe ich mehrere ValidationsFunktionen hab ich aber jetz mal weggelassen, wird sonst zu lang)

Thema: Variable ohne Bindung in xaml übergeben
Am im Forum: GUI: WPF und XAML

Ich kann die IErrorInfo in dem fall ja nicht verwenden, da den wert überprüfen will bevor dieser übernommen wird.
Der Eigenschaftsoperator "set_SelectedTargetPlaceName(string value)" wird vor "get_IDataErrorInfo.this[string columnName]" ausgeführt, was das problem aufwirft, das ich nicht prüfen kann ob der Wert korrekt ist !bevor ich ihn in das Feld "_SelectedTargetPlaceName" schreibe.

Wenn ich im der ValidationResultden wert "false" das Feld "IsValid" eintrage, wird die eigenschaft "set_SelectedTargetPlaceName(string value)" garnichterst aufgerufen.
Mit "get_IDataErrorInfo.this[string columnName]" kan ich den aufruf leider nicht kontrollieren.

Ich will ja nur wissen wie ich eine Eigenschaft ohne eine Bindung übergeben kann. Das wird in anderen fällen sicher auchnoch nützlich sein.

Thema: Variable ohne Bindung in xaml übergeben
Am im Forum: GUI: WPF und XAML

IDataErrorInfo wird erst durchlaufen nachdem der wert in der gebundenen Property gesetzt wurde.
Ich verwende den String der eingegeben wird eigentlich nur als abkürzung, damit der Anwender nicht die ganze Liste durchschauen muss wenn der name 2x vorkommt muss, ich dem Anwender zudem die möglichkeit geben den richtigen per Hand auszuwählen.


Ich hab ne recht große Liste die ich durchlaufe um zu prüfen wie oft der String drinn vorkommt, mir geht es hier auch hauptsächlich um die widerverwendbarkeit der Validation.

Es funktioniert ja wenn ich immer da gleiche ViewModel verwende.
Das möchte ich aber vermeiden.

immoment weise ich "PermissibleValues" noch so zu:


        public string MvvMAddress
        {
            set
            {
                try
                {
                    _MvvMAddress = value;
                    Type _Type = typeof(MainViewModel);
                    PropertyInfo _PInfo = _Type.GetProperty(value);
                    PermissibleValues = _PInfo.GetValue((new MainViewModel()), null);
                }
                catch { }
            }
        }

Thema: Variable ohne Bindung in xaml übergeben
Am im Forum: GUI: WPF und XAML

Hab ich mir schon angeschaut, aber ich hätte den String gern geprüft !bevor ich ihn verwende nicht danach.

Thema: Variable ohne Bindung in xaml übergeben
Am im Forum: GUI: WPF und XAML

Hallo zusammen,

Ich versuche schon länger eine Variable im xaml zu übergeben ohne eine bindung zu erzeugen.

Im DataContext meines Hauptfensters habe ich das VievModel in dem die Liste enthalten ist.

Validation ist eine eigene klasse die von ValidationRule ableitet.
in der Validation möchte ich prüfen ob das Element in einer Liste vorkommt, diese Liste möchte ich an (object)"PermissibleValues" übergeben.
(Damit ich die klasse auch an anderen stellen verwenden kann. Nur leider bekomm ich das nich hin -.-)

Mit MvvMAddress sage ich im moment das die Liste "AllStoragePlaceStocks" heißt, ich lese diese Liste dann aus meinem ViewModel aus.

mit ValuePath geben ich an welche eigenschaft der liste ich vergleiche in disem fall "Name".


        <TextBox x:Name="tbTargetplace">
            <TextBox.Text>
                <Binding Mode="TwoWay"
                         Path="SelectedTargetPlaceName"
                         UpdateSourceTrigger="LostFocus"
                         >
                    <Binding.ValidationRules>
                        <local:Validation MvvMAddress="AllStoragePlaceStocks" Valuepath="Name" PermissibleValues="?" ValidationType="ContainsUniqueString"/>
                    </Binding.ValidationRules>
                </Binding>
            </TextBox.Text>
        </TextBox>

Wie kann eine Liste aus meinem DataContext an PermissibleValues übergeben?

Thema: Navigationsleiste im GUI realisieren (links am Rand)
Am im Forum: GUI: Windows-Forms

Oder einmal ganz anders gedacht, erstell dir UserControl mit nem Bild und Schrift und hau es in ein FlowLayoutPannel(oderso) rein.

Thema: Anzahl der Zeilen ermitteln, bei denen eine bestimmte Zelle einen bestimmten Wert hat
Am im Forum: Datentechnologien

Recht easy

Datagridview.Rows.Count

Thema: Pfade aus ListView über TreeView lesen
Am im Forum: GUI: Windows-Forms

Warum betreibst du soviel aufand, du kanst doch eigentlich einfach das selektierte item aus ListView1 in LV2 kopieren.

Oder direkt vom deinem TreeView in die ListView2.

Du kannst im übrigen den Pfad vom dateinamen trennen indem du folgendes nutzt:

System.IO.Path.GetFileName(string path); //gibt den dateinamen zurück
System.IO.Path.GetDirectoryName(string path); //gibt den pfad zurück

dann kannst du die das Rumgepopel in der foreach sparen.