6

我想綁定自動完成框的SelectedTextSelectedItem屬性,因爲我的客戶端希望能夠輸入文本並從列表中進行選擇。它的工作正常,但...Autocompletebox SelectedText Bug

MainPage有一個DataGrid。當我從網格中選擇一條記錄(即SelectedItem)時,我想將它設置在彈出窗口的自動完成框中。有些時候它可以工作,但有些時候不會。

該怎麼辦?

這是我的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> 

此屬性是在我看來模型和綁定到DataGrid:

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

你的問題是什麼? – ean5533

+0

我有設置SelectedText屬性的問題有一段時間它應該設置正確,有些時間沒有設置正確 –

+2

你可以發佈一些你的代碼示例和/或圖像相同嗎? – Amitd

回答

3

你不應該使用這兩個功能SelectedText的SelectedItem自動完成。它是AutoCompleteBox錯誤.....一個更好的辦法是設置文本AutoCompleteBox上的GotFocus和LossFocus的可見性。這種方式,你會不由自主地解決問題

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(); 
    } 
+0

你的答案與我的問題不兼容 –