6 Stimmen

Autocompletebox SelectedText Fehler

Ich möchte sowohl die SelectedText y SelectedItem Eigenschaften eines AutocompleteBox, weil mein Kunde will in der Lage sein, Text eingeben und wählen Sie aus der Liste auch. Es funktioniert richtig, aber ...

Die MainPage hat ein DataGrid. Wenn ich einen Datensatz aus dem Raster (d.h. SelectedItem) auswähle, möchte ich ihn in der AutocompleteBox eines Popup-Fensters festlegen. Manchmal funktioniert es, manchmal aber auch nicht.

Was sollte ich bei diesem Problem tun?

Dies ist mein XAML:

<Sdk:AutoCompleteBox Grid.Column="3" Grid.Row="3" Height="18" Width="150" 
     IsTextCompletionEnabled="True" TabIndex="9" HorizontalAlignment="Left"

     Text="{Binding ElementName=ResEdit,Path=DataContext.SelectedDemoText,Mode=TwoWay}"
     ItemsSource="{Binding ElementName=ResEdit,Path=DataContext.DemoList,Mode=OneWay}"
     ItemTemplate="{StaticResource DemoTemplate}"
     ValueMemberPath="DemoCode" 
     LostFocus="AutoCompleteBox_LostFocus"
     Margin="0,0,21,0" Padding="0">
  </Sdk:AutoCompleteBox>

Diese Eigenschaft befindet sich in meinem View-Modell und ist an das DataGrid gebunden:

public InvoicesDTO SelectedInvoice
{
    get { return _selectedInvoice; }
    set
    {
        SelectedInvoice = value;
        SelectedDomoText = SelectedInvoice.DemoText.Trim();
        RaisePropertyChanged("SelectedInvoice");
    }
}

3voto

D J Punkte 150

Sie sollten nicht beide Funktionen verwenden AusgewählterText y SelectedItem en Autovervollständigen . es ist ein Fehler von AutoCompleteBox ..... Eine bessere Möglichkeit ist es, die Sichtbarkeit der Textfeld y AutoCompleteBox auf GotFocus und LossFocus. Auf diese Weise werden Sie definitiv Ihr Problem lösen

 private void DemoAutoComplete_LostFocus(object sender, RoutedEventArgs e)
            {
                DemoTextBox.Visibility = Visibility.Visible;
                DemoAutoComplete.Visibility = Visibility.Collapsed;
                DemoTextBox.Text = OCRAutoComplete.Text;

                ((DemoVM)this.DataContext).SelectedDemoText = DemoAutoComplete.Text;
            }

private void DemoTextBox_GotFocus(object sender, RoutedEventArgs e)
    {
        DemoAutoComplete.Text = OctTextBox.Text;
        DemoTextBox.Visibility = Visibility.Collapsed;
        DemoAutoComplete.Visibility = Visibility.Visible;
        DemoAutoComplete.Focus();
    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X