silverlight 4.0 - Autocompletebox SelectedText Bug



我想绑定一个AutocompleteBox的SelectedTextSelectedItem属性,因为我的客户端希望能够输入文本并从列表中选择。它工作正常,但是…

主页有一个数据网格。当我从网格(即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");
    }
}

你不应该在autocomplete中同时使用SelectedTextSelectedItem函数。这是一个AutoCompleteBox.....的bug一个更好的方法是设置文本框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();
    }

相关内容

  • 没有找到相关文章