Laden...

Forenbeiträge von _Cashisclay Ingesamt 277 Beiträge

20.05.2019 - 11:20 Uhr

Ja, ist es.

@ThomasE. - Hat keinen Unterschied gemacht.

Grüße

20.05.2019 - 11:17 Uhr

Nicht richtig heißt das diese Property mir angezeigt wird :

<TextBox    Grid.Column="1"
                                                IsReadOnly="True"
                                                    HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
                                                        Opacity="0.5"
                                                            Text="{Binding MaterialPreparationOfProtocols.ComboBoxMaterialPreparationProtocolsClinicStaffSelectedItem.DateOfTraining, Mode=OneWay, StringFormat=dd.MM.yyyy, UpdateSourceTrigger=PropertyChanged}"
                                            Style="{StaticResource BaseTextBox}"/>

Mir aber mein SelectedItem in meiner ComboBox nicht ausgewählt wird.

Das Item entspricht meinem ObjectModel

20.05.2019 - 09:46 Uhr

Hallo,

            public List<ClinicModel>                    ComboBoxMaterialPreparationProtocolsClinicItemsSource
            {
                get
                {
                    return _ComboBoxMaterialPreparationProtocolsClinicItemsSource;
                }
            }

            public ClinicModel                          ComboBoxMaterialPreparationProtocolsClinicSelectedItem
            {
                get { return Item.Clinic != null ? Item.Clinic : null; }
                set
                {
                    Item.Clinic = value;
                    Raise(nameof(ComboBoxMaterialPreparationProtocolsClinicSelectedItem));

                        Raise(nameof(LabelMaterialPreparationProtocolsAdditionalRequirementContent));
                }
            }

            public ICommand                             ComboBoxMaterialPreparationProtocolsClinicSelectionChangedCommand           { get; }


            public List<ClinicStaffModel>               ComboBoxMaterialPreparationProtocolsClinicStaffItemsSource
            {
                get { return _ComboBoxMaterialPreparationProtocolsClinicStaffItemsSource; }
                set
                {
                    _ComboBoxMaterialPreparationProtocolsClinicStaffItemsSource = value;
                    Raise(nameof(ComboBoxMaterialPreparationProtocolsClinicStaffItemsSource));

                        Raise(nameof(ComboBoxMaterialPreparationProtocolsClinicStaffSelectedItem));
                }
            }

            public ClinicStaffModel                     ComboBoxMaterialPreparationProtocolsClinicStaffSelectedItem
            {
                get { return Item.ClinicStaff != null ? Item.ClinicStaff : null; }
                set
                {
                    Item.ClinicStaff = value;
                    Raise(nameof(ComboBoxMaterialPreparationProtocolsClinicStaffSelectedItem));
                    
                        Raise(nameof(TextBoxMaterialPreparationProtocolsTimeShiftText));
                }
            }

Ich hab aktuell das Problem beim Laden meiner Eigenschaften das meine ClinicStaffItemsSource befüllt wurde, aber mein SelectedItem nicht richtig ausgewählt oder angezeigt wird.

20.05.2019 - 09:36 Uhr

Hallo zusammen,

ich hab aktuell das Problem das manche SelectedItems nicht gesetzt werden, weil anscheinend die ItemsSource zu spät geladen wird, wie kann ich denn am besten die Daten laden bevor der DataContext gesetzt wurde?

Grüße

17.05.2019 - 10:32 Uhr

Okay habs hinbekommen, die Idee mit dem Focus hatte ich auch schon, aber irgendwie hatte ich das nicht weiterverfolgt .. der Denkanstoß hat mir geholfen Danke!

Lösung :

Zusätzliche Klasse für das Focus Event


    /// <summary>
    ///     Solution of this Class
    ///         https://stackoverflow.com/questions/1356045/set-focus-on-textbox-in-wpf-from-view-model-c
    /// </summary>

    public static class FocusBehavior
    {

        #region Dependency Properties

            public static readonly DependencyProperty IsFocusedProperty = 
                        DependencyProperty.RegisterAttached("IsFocused", 
                                                                typeof(bool?), 
                                                                    typeof(FocusBehavior), 
                                                                        new FrameworkPropertyMetadata(IsFocusedChanged){ BindsTwoWayByDefault = true });

        #endregion

        #region Private Methods

            private static void IsFocusedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
            {

                var fe = (FrameworkElement)d;

                    if (e.OldValue == null)
                    {

                        fe.GotFocus += FrameworkElement_GotFocus;
                    
                        fe.LostFocus += FrameworkElement_LostFocus;

                    }

                        if (!fe.IsVisible)
                        {

                            fe.IsVisibleChanged += new DependencyPropertyChangedEventHandler(fe_IsVisibleChanged);

                        }

                            if ((bool)e.NewValue)
                            {

                                fe.Focus();

                            }

            }

            private static void fe_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
            {

                var fe = (FrameworkElement)sender;

                    if (fe.IsVisible && (bool)((FrameworkElement)sender).GetValue(IsFocusedProperty))
                    {

                        fe.IsVisibleChanged -= fe_IsVisibleChanged;

                        fe.Focus();

                    }

            }

            private static void FrameworkElement_GotFocus(object sender, RoutedEventArgs e)
            {

                ((FrameworkElement)sender).SetValue(IsFocusedProperty, true);

            }

            private static void FrameworkElement_LostFocus(object sender, RoutedEventArgs e)
            {

                ((FrameworkElement)sender).SetValue(IsFocusedProperty, false);

            }

        #endregion

        #region Public Methods

            #region Get

                public static bool? GetIsFocused(DependencyObject element)
                {

                        if (element == null)
                        {

                            throw new ArgumentNullException("element");

                        }

                    return (bool?)element.GetValue(IsFocusedProperty);
                }

            #endregion

            #region Set

                public static void SetIsFocused(DependencyObject element, bool? value)
                {

                        if (element == null)
                        {

                            throw new ArgumentNullException("element");

                        }

                    element.SetValue(IsFocusedProperty, value);

                }

            #endregion

        #endregion

    }   

MVVM :



            public string                               TextBoxMaterialPreparationProtcolsWeightText
            {
                get
                {
                    if (TextBoxMaterialPreparartionProtocolsWeightIsFocused)
                    {

                        return Item.Weight.ToString();

                    } else { return Item.Weight + "g"; }
                }
                set
                {

                    // Regex
                        
                        Regex Regex = new Regex("^*[0-9]$");

                            if (Regex.IsMatch(value.ToString()))
                            {

                                Item.Weight = value != null ? Convert.ToInt32(value) : (int?)null;

                            }
else
                            {

                                if (String.IsNullOrEmpty(value)) { Item.TimeShift = null; }

                            }

                    Raise(nameof(TextBoxMaterialPreparationProtcolsWeightText));

                }
            }

            public bool                                 TextBoxMaterialPreparartionProtocolsWeightIsFocused
            {
                get { return _TextBoxMaterialPreparartionProtocolsWeightIsFocused; }
                set
                {
                    _TextBoxMaterialPreparartionProtocolsWeightIsFocused = value;
                    Raise(nameof(TextBoxMaterialPreparartionProtocolsWeightIsFocused));

                        Raise(nameof(TextBoxMaterialPreparationProtcolsWeightText));
                }
            }


XAML :

<TextBox    Grid.Column="1"
                                            HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
                                                MaxLength="9"
                                                    mah:TextBoxHelper.ClearTextButton="False"
                                                        FocusBehavior:FocusBehavior.IsFocused="{Binding MaterialPreparationOfProtocols.TextBoxMaterialPreparartionProtocolsWeightIsFocused, UpdateSourceTrigger=PropertyChanged}"
                                                            Text="{Binding MaterialPreparationOfProtocols.TextBoxMaterialPreparationProtcolsWeightText, UpdateSourceTrigger=PropertyChanged}"
                                        Style="{StaticResource BaseTextBox}"/>

Grüße

17.05.2019 - 06:58 Uhr

Hast du denn ein Beispiel für die Trigger?

An und für sich klingt das ja gut, klappt nur aktuell nicht so einfach.

<Trigger Property="IsFocused" Value="True">

                                                <Setter Property="Text" Value="{Binding MaterialPreparationOfProtocols.Item.LastnameOfChildren, UpdateSourceTrigger=PropertyChanged}"/>

                                            </Trigger>

                                            <Trigger Property="IsFocused" Value="False">

                                                <Setter Property="Text" Value="{Binding MaterialPreparationOfProtocols.Item.LastnameOfChildren, StringFormat={}{0}g, UpdateSourceTrigger=PropertyChanged}"/>

                                            </Trigger>
16.05.2019 - 14:59 Uhr

für nummerische Werte wäre natürlich ein anderes Control besser.

Das soll die Eingabe gar nicht erkennen ich will einfach nur hinter der Eingabe die Einheit stehen haben, die geb ich dem Control auch gerne mit, wenn es das dann kann.

Ich finde aktuell nichts.

Grüße

16.05.2019 - 13:21 Uhr

Hallo zusammen,

ich hätte gerne die Maßeinheit (g, Kg etc.) direkt in (Beispielsweise : TextBox, NumericUpDown)
dem jeweiligen Control hinter dem Inhalt drin.

Das sobald etwas eingegeben wurde immer die entsprechend hintrelegte Einheit dahinter angezeigt wird.

Hat damit jemand Erfahrung oder eine Lösung parat?

Grüße

15.05.2019 - 09:10 Uhr

Sollte auch kein persönlicher Angriff sein und der Verweis darauf ist wie bereits erwähnt auch nicht verkehrt, allerdings beantwortet das seine Frage überhaupt nicht.

Grüße

14.05.2019 - 14:31 Uhr

Hey Uff,

solche Antworten wie von Taipi88 hasse ich persönlich.

Ich kenne das, man versucht es ewig alleine, hat schon gegoogled und wendet sich dann hoffnungsvoll an ein Forum, um dort zu hören man sollte es anders machen.

Allerdings muss man in dem Fall sagen, er hat recht.

Du solltest wirklich auf das MVVM Pattern sowie auf DataBindings setzen, das macht die Sache wesentlich leichter und auch angenehmer damit zu arbeiten.

Ansonsten zu deiner Frage :

Theoretisch sollte LISTE1.SelectedItem != null dir sagen ob bereits ein Element ausgewählt wurde.

Grüße

14.05.2019 - 10:38 Uhr

Beitrag schon ein wenig älter.

Tatsächlich gerade am selben Punkt stehen geblieben.

Die AutoCompleteBox von WpfToolkit brauch die TwoWay Bindung, scheint nicht voreingestellt zu sein.
Hat jemand schon mal geschafft für dieses Element ein Watermark zu setzen?

Krieg ich aktuell nicht hin, gibts dort irgendwas? Habs mal den TextBoxHelper von MahApps versucht, der hat dort leider nichts anzeigen könnten.

Grüße

07.05.2019 - 09:43 Uhr

Servus,

bin gerade auf das selbe Problem gestoßen, der Kollege vor mir steuert aus dem MainWindow mit einer ContentControl UserControl's an, allerdings wie krieg ich denn ein UserControl wieder geschlossen um mir quasi im MainWindow den Rückgabewert zu holen um das dann weiterzuverarbeiten?

Grüße

04.04.2019 - 14:44 Uhr

Danke 🙂!

Irgendwie wird mein SelectedItem immer auf Null gesetzt sobald ich die Combobox verlasse (Befindet sich in einem DataGrid CellEditTemplate) muss ich da noch irgendwas ergänzen als nur die DependencyProperty?

Edit : Geht jetzt weiß aber nicht warum, hab so viel geändert .. hab den Überblick verloren 🙄

04.04.2019 - 12:55 Uhr

Danke der Tipp hat schon mal geholfen für den Einstieg.

Wird langsam.

Hab mir jetzt erstmal ein eigenes UserControl gemacht, aber leichter wäre es doch irgendwie, wenn ich ein UserControl vom Typ ComboBox hätte wo ich nur das ControlTemplate erweiter, aber die Eigenschaften wie ItemsSource etc. beibehalten werden.

Geht das?

04.04.2019 - 08:44 Uhr

Hallo zusammen,

hat jemand so etwas schon einmal gebastelt?
Ich google jetzt schon seit gestern und bin noch zu keinem zufriedenstellendem Ergebnis gekommen.

Eventuell kann ja jemand weiterhelfen.

Edit : Es geht quasi um einen Clear Button am Ende der Liste

Grüße

08.02.2019 - 10:35 Uhr

Ich weiß nicht wie das geht 😕 Bzw. wäre das ja auch vielleicht die Antwort auf meine Frage

08.02.2019 - 09:37 Uhr

Hallo,

danke für die schnelle Antwort.

Ja, ich drück mich irgendwie immer zu Smart aus.

Telerik hat ein Steuerelement mit dem ich Probleme hab (RadRibbonGroup) also hab ich mir das einfach umgebastelt und wollte aber den exakten Farbton beibehalten. Dort ist aber ein Farbverlauf hinterlegt.

Grüße

08.02.2019 - 09:13 Uhr

Hallo zusammen,

ich würde mir gerne von einem Telerik Steuerelement den Farbverlauf auslesen lassen, ist das überhaupt möglich?

Grüße

07.02.2019 - 09:47 Uhr

Servus p!lle,

sorry für die späte Rückmeldung meinerseits.

Ich hab es gerade mal mit der MaskedTextBox versucht und dort klappt es aktuell bei mir auch nicht.
Das Grid_Visibility hab ich mal weggelassen.

                        <Grid Visibility="{Binding ElementName=ListBox, Path=SelectedIndex, Converter={StaticResource IntEqualsParameterToVisible}, ConverterParameter=1}">

                            <Grid.ColumnDefinitions>

                                <ColumnDefinition Width="25"  />
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="25"  />

                            </Grid.ColumnDefinitions>

                            <Grid.RowDefinitions>

                                <RowDefinition Height="*" />
                                <RowDefinition Height="35"/>
                                <RowDefinition Height="*" />

                            </Grid.RowDefinitions>

                            <xctk:MaskedTextBox Grid.Column="1" Grid.Row="1"
                                                    Margin="3"
                                                        VerticalContentAlignment="Center" HorizontalContentAlignment="Center"
                                                            Text="{Binding RadRibbonGroupFilterTrunkIDFromText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                                                Mask="00\.00\.00\.00\.\0"
                                                                    MinWidth="100"
                                                                        TabIndex="1"/>

                            <Label              Grid.Column="2" Grid.Row="1"
                                                    Content=" - "
                                                        VerticalContentAlignment="Center" HorizontalContentAlignment="Center"/>

                            <xctk:MaskedTextBox Grid.Column="3" Grid.Row="1"
                                                    Margin="3"
                                                        VerticalContentAlignment="Center" HorizontalContentAlignment="Center"
                                                            Text="{Binding RadRibbonGroupFilterTrunkIDToText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                                                Mask="00\.00\.00\.00\.\0"
                                                                    MinWidth="100"
                                                                        TabIndex="2"/>

                        </Grid>

Edit Grid befindet sich in einer RadRibbonGroup. Macht das vielleicht den Unterschied? (Telerik)

04.01.2019 - 08:50 Uhr

Moin zusammen,

ich hab es mit einer Standard TextBox nicht ausprobiert, weil ein RadMaskedTextInput vorgegeben ist.
Ich denke das Grid unterbindet es.

18.12.2018 - 12:03 Uhr

Seruvs p!lle,

ich setz sie oben für das Grid.

Danke dir! 😃

18.12.2018 - 09:41 Uhr

Brachte nicht den gewünschten Erfolg 😕.

18.12.2018 - 08:34 Uhr

Hallo zusammen,

ich hab aktuell das Problem, das ich einige Elemente ein und ausblende für diese aber gerne einen TabIndex hätte wenn diese Visible sind. Bisher hat noch nichts funktioniert und eben bin ich auch darauf gestoßen.

Controls that cannot get the focus, as well as disabled and invisible controls, do not have a TabIndex property and are not included in the tab order. As a user presses the TAB key, these controls are skipped.

Hat jemand damit schon Erfahrung gesammelt? Kann mir irgendwie nicht vorstellen das es gar nicht funktioniert.

                            <ressourcen:Grid_Visibility
                                Style="{StaticResource Visibility_Effect_Grid}"
                                Visibility_Effect="{Binding Visibility}">

                                <Grid>

                                    <Grid.ColumnDefinitions>

                                        <ColumnDefinition Width="25" />
                                        <ColumnDefinition Width="*" />
                                        <ColumnDefinition Width="15" />
                                        <ColumnDefinition Width="*" />
                                        <ColumnDefinition Width="25" />

                                    </Grid.ColumnDefinitions>

                                    <telerik:RadMaskedTextInput Grid.Column="1"
                                                                Margin="3"
                                                                VerticalContentAlignment="Center"
                                                                HorizontalContentAlignment="Center"
                                                                VerticalAlignment="Center"
                                                                Mask="dd.dd.dd.dd.d"
                                                                FontSize="12"
                                                                Width="Auto"
                                                                Value="{Binding Von, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
                                                                KeyboardNavigation.TabIndex="1" />

                                    <telerik:RadMaskedTextInput Grid.Column="3"
                                                                Margin="3"
                                                                VerticalContentAlignment="Center"
                                                                HorizontalContentAlignment="Center"
                                                                VerticalAlignment="Center"
                                                                Mask="dd.dd.dd.dd.d"
                                                                FontSize="12"
                                                                Width="Auto"
                                                                Value="{Binding Bis, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                                                KeyboardNavigation.TabIndex="2" />

                                </Grid>

                            </ressourcen:Grid_Visibility>
01.10.2018 - 12:16 Uhr

Ich probier es mal dort auch noch .. danke 😃

01.10.2018 - 09:00 Uhr

Hat keiner damit Erfahrung oder arbeitet selber mit Telerik?

Oder fehlen noch irgendwelche Informationen von mir.

Grüße

28.09.2018 - 09:55 Uhr

Hallo zusammen,

ich hab folgendes Problem, ich habe ein telerik:RadGridView und habe dort in einer Spalte einen Button, für diesen möchte ich über einen DataTrigger via Style den IsEnabled Status verändern, nur sobald ich den Style setze ändert das Steuerelement seine Größe von alleine, wenn ich dieses dann über einzelne Eigenschaften anpasse komm ich trotzdem nicht mehr zum ursprünglichen Ergebnis zurück, hat jemand vielleicht eine Idee woran das liegen könnte?

            <telerik:RadGridView    Grid.Row="1"
                                        AutoGenerateColumns="False"
                                            IsFilteringAllowed="False" CanUserResizeColumns="False" ShowGroupPanel="False"
                                                RowIndicatorVisibility="Collapsed"
                                                    SelectionMode="Single" SelectionUnit="FullRow"
                                                        telerik:StyleManager.Theme="Windows8Touch"
                                                            ItemsSource="{Binding Rückstellproben_RadGridView}"
                                                                SelectedItem="{Binding Rückstellproben_RadGridView_SelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" >

                    <telerik:GridViewDataColumn
                                                    Header="Freigabe"
                                                        HeaderTextAlignment="Center"
                                                            MinWidth="120">

                        <telerik:GridViewDataColumn.CellTemplate>

                            <DataTemplate>

                                <telerik:RadButton  Content="Bestätigen"
                                                        IsEnabled="False"
                                                            Margin="3, 0, 3, 0"/>

                            </DataTemplate>

                        </telerik:GridViewDataColumn.CellTemplate>

                        <telerik:GridViewDataColumn.CellEditTemplate>

                            <DataTemplate>



                                <!--<Button Content="Bestätigen"
                                            Margin="3, 0, 3, 0"
                                                Height="22"
                                                    FontSize="10" VerticalContentAlignment="Center">



                                </Button>-->

                                <telerik:RadButton  Content="Bestätigen"
                                                        x:Name="rb_Stellplatzfreigabe_der_dritten_Rückstellprobe"
                                                            Margin="3, 0, 3, 0">

                                    <telerik:RadButton.Style>

                                        <Style TargetType="telerik:RadButton">

                                            <Style.Setters>

                                                <Setter Property="Content" Value="Test"/>
                                                <Setter Property="Opacity"            Value="0.5"    />
                                                <Setter Property="VerticalContentAlignment" Value="Center"/>
                                                <Setter Property="FontSize" Value="10"/>
                                                <Setter Property="Height" Value="25"/>

                                            </Style.Setters>

                                            <!--<Setter Property="Height"               Value="22"      />

                                            <Setter Property="VerticalContentAlignment"     Value="Center"/>
                                                <Setter Property="HorizontalContentAlignment"   Value="Center"/>

                                            <Setter Property="FontSize"             Value="12"      />-->

                                            

                                            
                                        </Style>
                                        
                                    </telerik:RadButton.Style>
                                    
                                </telerik:RadButton>

                            </DataTemplate>

                        </telerik:GridViewDataColumn.CellEditTemplate>

                    </telerik:GridViewDataColumn>

</>

Nicht wundern ich hab schon einiges versucht, deswegen sieht das ein wenig unübersichtlich an der Stelle aus.

Auf dem Bild :

Links Default - Rechts mit dem Style Trigger
Unten wie es aussieht wenn ich versuche es anzupassen.

Grüße

13.08.2018 - 09:24 Uhr

Ging leider nicht, obwohl es im anderen bereits implementiert war. 🤔

11.08.2018 - 19:31 Uhr

Oder bring ich da wieder etwas durcheinander?

Brauch das neue ViewModel auch nochmal ein INotifyPropertyChanged?

Edit : Jup, dachte es reicht wenn es vom ersten erbt.

10.08.2018 - 11:13 Uhr

Er zeigt mir jetzt zwar schön meine Änderungen im RadGridView an, allerdings wenn ich vom Code aus etwas im ViewModel setze wird irgendwie kein PropertyChanged Event ausgelöst, er springt irgendwie gar nicht erst in den Set Bereich ..

ViewModel Extraröhrchen

                private ObservableCollection<ViewModel_Extraröhrchen_RadGridView> _Extraröhrchen_RadGridView;

                private ViewModel_Extraröhrchen_RadGridView _Extraröhrchen_RadGridView_SelectedItem;

                public ObservableCollection<ViewModel_Extraröhrchen_RadGridView> Extraröhrchen_RadGridView      { get { return _Extraröhrchen_RadGridView; } set { _Extraröhrchen_RadGridView = value; OnPropertyChanged("Extraröhrchen_RadGridView"); } }

                public ViewModel_Extraröhrchen_RadGridView Extraröhrchen_RadGridView_SelectedItem               { get { return _Extraröhrchen_RadGridView_SelectedItem; } set { _Extraröhrchen_RadGridView_SelectedItem = value; OnPropertyChanged("Extraröhrchen_RadGridView_SelectedItem"); } }

ViewModel_Extraröhrchen_RadGridView

        public List<Vita34.Data.VitaLab.Database.TNK_TANK>  Extraröhrchen_RadGridView_TANK                  { get { return _Extraröhrchen_RadGridView_TANK; }               set {_Extraröhrchen_RadGridView_TANK = value; } }

        public int                                          Extraröhrchen_RadGridView_TANK_SelectedIndex    { get { return _Extraröhrchen_RadGridView_TANK_SelectedIndex; } set { _Extraröhrchen_RadGridView_TANK_SelectedIndex = value;    OnPropertyChanged("Extraröhrchen_RadGridView_TANK_SelectedIndex"); } } 

        public string                                       Extraröhrchen_RadGridView_TANK_NAME             { get { return _Extraröhrchen_RadGridView_TANK_NAME; }          set { _Extraröhrchen_RadGridView_TANK_NAME = value;             OnPropertyChanged("Extraröhrchen_RadGridView_TANK_NAME"); } }

Window

ViewModel.Extraröhrchen_RadGridView_SelectedItem.Extraröhrchen_RadGridView_TANK = Vita34.Data.VitaLab.Helper.Get.DropDownTanks("E");

XAML

                        <telerik:GridViewDataColumn.CellEditTemplate>

                            <DataTemplate>

                                <ComboBox   Margin="3"
                                                VerticalContentAlignment="Center" HorizontalContentAlignment="Center"
                                                    ItemsSource="{Binding Extraröhrchen_RadGridView_TANK}"
                                                        DisplayMemberPath="TANK_NAME"
                                                            SelectedIndex="{Binding Extraröhrchen_RadGridView_SelectedItem.Extraröhrchen_RadGridView_TANK_SelectedIndex, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

                            </DataTemplate>
                            
                        </telerik:GridViewDataColumn.CellEditTemplate>

Liegt es daran das ich im SelectedItem die Werte befülle und er dann irgendwie den Bezug verliert? Seltsamerweise lässt sich vom Code aus die Datenquelle befüllen, was er auch richtig anzeigt.

09.08.2018 - 09:01 Uhr

So war es wohl auch nicht gemeint .. 🙁

Datenquelle

            public static List<View_Extraroehrchen> return_Extraröhrchen()
            {
                try
                {

                    using (VitaLab3Entities VitaLab = new VitaLab3Entities())
                    {

                        var x = VitaLab.View_Extraroehrchens.ToList();

                        return x;

                    }

                }
                catch (Exception ex)
                {

                    MessageBox.Show(ex.StackTrace.ToString());

                }

                return null;

            }

ViewModel



                private ObservableCollection<ViewModel_Extraröhrchen_Test> _Test;

                public ObservableCollection<ViewModel_Extraröhrchen_Test> Test { get { return _Test;} set { _Test = value; OnPropertyChanged("Test"); } }

    public class ViewModel_Extraröhrchen_Test
    {

        public string Format_Praeparat_ID { get; set; }

        public DateTime? AUSGELAGERT_DATUM { get; set; }


    }


Window

ViewModel.Test = new System.Collections.ObjectModel.ObservableCollection<Vita34.VitaLab.Windows.VitaLab.ViewModel.ViewModel_Extraröhrchen_Test>(Vita34.Data.VitaLab.VitaLab3.Sammellisten.Extraröhrchen.Extraröhrchen.Get.return_Extraröhrchen().Select(x => new VitaLab.ViewModel.ViewModel_Extraröhrchen_Test
                                                                                                                                                            {
                                                                                                                                                                Format_Praeparat_ID = x.Format_Praeparat_ID,
                                                                                                                                                                AUSGELAGERT_DATUM = x.AUSGELAGERT_DATUM
                                                                                                                                                            }
                                                                                                                                                        ));
08.08.2018 - 15:27 Uhr

Schließt einfach den Thread das ist sinnlos 👍

08.08.2018 - 13:37 Uhr

Wir können nicht verstehen was da passiert. Offensichtlich kommt da eine ObservableCollection zurück. Aber was in dieser Methode passiert und wie deine Entities in diese ObservableCollection gelangen sehen wir nicht. Dort ist aber scheinbar ein möglicher Platz für dein Wrapping.

using (VitaLab3Entities VitaLab = new VitaLab3Entities())
                {

                    var Extraröhrchen = VitaLab.View_Extraroehrchens.Where(x => x.ANNAHME_DATUM > AnnahmeDatum && x.ANNAHME_DATUM < AnnahmeDatumBis).OrderBy(x => x.ANNAHME_DATUM);

                    return new System.Collections.ObjectModel.ObservableCollection<View_Extraroehrchen>(Extraröhrchen);

                }
08.08.2018 - 12:46 Uhr

Statt halt einfach die Entities in die Collection zu packen wrapst du sie halt vorher in einem ViewModel.

Also ich packe meine Entities in ein extra ViewModel und befülle meine ObservableCollection dann mit dem ViewModel oder wie?

Anhand deines Snippets sieht man halt recht wenig was du vor hast und wie bestimmte Dinge bei dir momentan umgesetzt sind. z.b. hab ich keine Ahnung wie du momentan überhaupt Daten bis zu deiner UI bringst.

Aber das ist doch eine Aussage mit der ich arbeiten kann.

mein aktuelles ViewModel :

public System.Collections.ObjectModel.ObservableCollection<View_Extraroehrchen> Extraröhrchen                                          { get { return _Extraröhrchen; } set { _Extraröhrchen = value; OnPropertyChanged("Extraröhrchen"); } }

            protected virtual void OnPropertyChanged(string PropertyName)
            {

                PropertyChanged.Invoke(this, new System.ComponentModel.PropertyChangedEventArgs(PropertyName));

            }

meine Klasse :

                    this.DataContext = ViewModel;

                        ViewModel.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(OnPropertyChanged);

                            set_Default_Values();


Befüllung der Daten


ViewModel.Extraröhrchen = Vita34.Data.VitaLab.VitaLab3.Liste.Liste.Get.GetViewExtraroehrchen(
                                                                                                                             ViewModel.Extraröhrchen_Filterbereich_Tagesliste_Datum,
                                                                                                                             ViewModel.Extraröhrchen_Filterbereich_Tagesliste_Datum.AddDays(1)
                                                                                                                            );

Anbindung an die Oberfläche

            <telerik:RadGridView    AutoGenerateColumns="False"
                                        IsFilteringAllowed="False" ShowGroupPanel="False"
                                            RowIndicatorVisibility="Collapsed"
                                                telerik:StyleManager.Theme="Windows8Touch"
                                                    ItemsSource="{Binding Extraröhrchen, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                                        SelectedItem="{Binding Extraröhrchen_SelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"

Bearbeitung der Daten

            
                            if (ViewModel.IsWorking == false)
                            {

                                if (ViewModel.Extraröhrchen_SelectedItem != null)
                                {

                                    ViewModel.Extraröhrchen_SelectedItem.AUSGELAGERT_VON = ViewModel.Extraröhrchen_Bearbeiter;

                                }

                            }

08.08.2018 - 09:47 Uhr

Wirkt auch so 8o

Wenn mich jemand das nächste mal fragt warum sein Auto nicht funktioniert, sag ich ihm auch einfach reparier es 👍 Sollte ja auf anhieb wissen wie er es umzusetzen hat. :rtfm:

08.08.2018 - 09:08 Uhr

Naja mit den aktuellen Vorschlägen kam ich noch nicht wirklich weiter und irgendwie muss ich ja voran kommen ..

Und in was oder wie konvertiere ich ein DBSet?

Bist du dir überhaupt sicher dass das RadGridView dann auch die Änderungen bemerkt? Oder vermutest du das ganze einfach nur?

08.08.2018 - 08:36 Uhr
this.Dispatcher.BeginInvoke(new Action(() => 
	{
		this.Test.Rebind();
	}
), System.Windows.Threading.DispatcherPriority.ApplicationIdle, null);

Immerhin mal etwas was funktioniert ..

08.08.2018 - 08:01 Uhr

Okay und wie bzw in was wrappe ich es dann am besten?

08.08.2018 - 07:18 Uhr

Hab ich doch? Ich hab ein ViewModel mit einer ObservableCollection die vom Typ View_Extraroehrchen ist, dieser Typ stammt aus der EntitiyFramework Klasse der dort definitiert ist.

Hat denn in dem Zusammenhang überhaupt schon mal jemand Erfahrung gesammelt? Scheint irgendwie nicht so.

Grüße

07.08.2018 - 16:09 Uhr

Ein Objekt aus der Datenbank.

public virtual DbSet<View_Extraroehrchen> View_Extraroehrchens { get; set; }
07.08.2018 - 15:19 Uhr

Aber wo soll ich das denn dort einfügen? Die Klasse von wo das Objekt kommt erbt bereits vom DBContext

Vielleicht kannst du mir mit einem Beispiel weiterhelfen?

07.08.2018 - 14:02 Uhr

Das kommt direkt aus der Datenbank (EntityFramework)

07.08.2018 - 13:48 Uhr

Hallo zusammen,

ich hab folgendes Problem :

ich versuche gerade eine ObservableCollection an ein RadGridView (Telerik) zu binden.

Wenn ich das SelectedItem ebenfalls an mein MVVM binde und dort Änderungen tätige, werden diese zwar in die Datenquelle übernommen, allerdings aktualisiert sich mein RadGridView nicht?

Kann mir jemand vielleicht helfen wo mein Fehler aktuell ist :

ViewModel

public System.Collections.ObjectModel.ObservableCollection<View_Extraroehrchen> Extraröhrchen                                          { get { return _Extraröhrchen; } set { _Extraröhrchen = value; OnPropertyChanged("Extraröhrchen"); } }

            protected virtual void OnPropertyChanged(string PropertyName)
            {

                PropertyChanged.Invoke(this, new System.ComponentModel.PropertyChangedEventArgs(PropertyName));

            }

WPF

            <telerik:RadGridView    AutoGenerateColumns="False"
                                        IsFilteringAllowed="False" ShowGroupPanel="False"
                                            RowIndicatorVisibility="Collapsed"
                                                telerik:StyleManager.Theme="Windows8Touch"
                                                    ItemsSource="{Binding Extraröhrchen, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                                        SelectedItem="{Binding Extraröhrchen_SelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">

                    <telerik:GridViewDataColumn DataMemberBinding="{Binding AUSGELAGERT_DATUM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                                    Header="Datum"
                                                        HeaderTextAlignment="Center"
                                                            MinWidth="80">

                        <telerik:GridViewDataColumn.CellTemplate>

                            <DataTemplate>

                                <TextBlock Text="{Binding AUSGELAGERT_DATUM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

                            </DataTemplate>
                            
                        </telerik:GridViewDataColumn.CellTemplate>

                        <telerik:GridViewDataColumn.CellEditTemplate>

                            <DataTemplate>

                                <Grid>

                                    <Grid.RowDefinitions>

                                        <RowDefinition Height="30"/>

                                    </Grid.RowDefinitions>

                                    <telerik:RadDatePicker Margin="3"
                                                                SelectedValue="{Binding DataContext.Extraröhrchen_Datum, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged,
                                                                                             RelativeSource={RelativeSource AncestorType=telerik:RadGridView}}"/>

                                </Grid>

                            </DataTemplate>
                            
                        </telerik:GridViewDataColumn.CellEditTemplate>
                        
                    </telerik:GridViewDataColumn>

</telerik:RadGridView

Wie ich aktuell versuche das ganze zu ändern im Code :

if (ViewModel.Extraröhrchen_Auslagern == true)
                                    {

                                        // --- Datum --- //

                                        ViewModel.Extraröhrchen_Datum = DateTime.Now;

                                        ViewModel.Extraröhrchen_SelectedItem.AUSGELAGERT_DATUM = DateTime.Now;

                                        

                                        //ViewModel.Extraröhrchen.Find(x => x.Praeparat_ID == ViewModel.Extraröhrchen_SelectedItem.Praeparat_ID).AUSGELAGERT_DATUM = DateTime.Now;
               

                                    }

Die Daten werden offensichtlich korrekt übernommen, allerdings wird im RadGridView die Änderung erst angezeigt sobald ich in das Feld klicke und wieder ein anderes auswähle.

Grüße

10.07.2018 - 12:37 Uhr

Jup lag am struct, wusste ich nicht das es damit nicht geht, hab mir jetzt eine Klasse genommen damit funktioniert es.

Ich kann die Static Sachen nicht alle rauswerfen, das wäre aktuell einfach zu viel Aufwand, das muss ich nach und nach mal aufarbeiten.

Weil ich hier zuletzt schrieb das es am struct lag warum es mit der ObservableCollection nicht funktioniert hat und es mittlerweile funktioniert, des halb ist es Blödsinn.

Außerdem ist es jawohl Geschmackssache ob man Daten eher in einer Liste als einer DataTable verarbeitet.

10.07.2018 - 11:38 Uhr

Servus MrSparkle,

Hi _Cashisclay,

deinen letzten Kommentar verstehe ich nicht. Du hast doch gefragt, weil es nicht so funktioniert, wie es derzeit implementiert ist.

leider totaler Blödsinn ^^. Ich habe gefragt ob es so wie es aktuell implementiert es, die Möglichkeit besteht das ganze umzusetzen, was auch funktioniert, ich habe ja bereits den Lösungsquellcode gepostet.

Das Programm und auch die funktionsweise die ich mit dem aktuellen Stand umsetzen wollte funktioniert. Der Code ist funktionsfähig, ebenfalls testbar und auch lesbar, er mag zwar nicht so sein wie es sich gehört und das er neu geschrieben werden müsste, das möchte ich gar nicht abstreiten, aber ich hatte bereits geschrieben ich kann es nicht ändern.

Und um diesen Kommentar dir zu erklären -> Ich bin wie gesagt neu in der Firma, das Programm ist nicht klein, ich kann nicht einfach alles neu schreiben, das wäre ewig dauern .. ich muss nun mal damit erstmal arbeiten und das nach und nach anfassen.

Trotzdem danke für die Links, ich kenne allerdings das normale MVVM vorgehen, ich hätte auch nicht alles static deklariert bzw. hab ich das zuvor noch nie benutzt.

Grüße

10.07.2018 - 10:00 Uhr

Deswegen nutzt man ja auch kein static.

Ja, aber ich kann es doch jetzt auch nicht ändern 😁

10.07.2018 - 09:58 Uhr

Ich müsste jetzt tatsächlich lange nachdenken um mich zu erinnern, wann ich das letzte mal structs benutzt habe.

Ich kann mich wie unconnected nicht daran erinnern, wann ich das letzte mal bewusst strucs verwendet habe und static dazu (Consolen Main Methoden (static) und Datetimes (struct) ausgenommen 😉

Geht mir ähnlich static in dem Zusammenhang hab ich so auch nie benutzt, deswegen ist das ganze auch ein wenig umständlich gerade für mich. Struct war meine Idee, hatte das irgendwie im Hinterkopf und dachte, wozu gibts das Zeug, wenn ich es dafür nicht nutze, wusste aber nicht das es einfach überholt ist.

10.07.2018 - 09:54 Uhr

Kleiner, allgemeiner Tipp:
In den meisten Fällen ist ein OnPropertyChanged bei einer Property vom Typ "ObservableCollection" nicht notwendig. Es sei denn, die komplette Property wird neu gesetzt.
Das Hinzufügen oder Löschen von Einträgen in der OC wird bereits durch die OC selbst überwacht.

Gilt allerdings nicht für static, habs gerade nochmal probiert, aber ansonsten danke für die Info 😛
War mir aber zur ObservableCollection auch schon bekannt.

10.07.2018 - 09:39 Uhr

Ich persönlich kann damit auch nichts anfangen, würde so auch nicht schreiben, allerdings weiß ich auch nicht warum man das nicht machen sollte, also die Begründung .. ihr seid doch dort mehr bewandert, kann mich eventuell jemand aufklären?

10.07.2018 - 09:30 Uhr

Jup lag am struct, wusste ich nicht das es damit nicht geht, hab mir jetzt eine Klasse genommen damit funktioniert es.

Ich kann die Static Sachen nicht alle rauswerfen, das wäre aktuell einfach zu viel Aufwand, das muss ich nach und nach mal aufarbeiten.