2010-10-22 26 views
5

Trong mã nguồn của AutoCompleteBox (tải về từ Microsoft) Tôi thấy như sau:Silverlight 4 AutoCompleteBox, thiết SelectedItem null

/// <summary> 
/// Called when the selected item is changed, updates the text value 
/// that is displayed in the text box part. 
/// </summary> 
/// <param name="newItem">The new item.</param> 
private void OnSelectedItemChanged(object newItem) 
{ 
    string text; 

    if (newItem == null) 
    { 
    text = SearchText; 
    } 
    else 
    { 
    text = FormatValue(newItem, true); 
    } 

    // Update the Text property and the TextBox values 
    UpdateTextValue(text); 

    // Move the caret to the end of the text box 
    if (TextBox != null && Text != null) 
    { 
    TextBox.SelectionStart = Text.Length; 
    } 
} 

gì phiền tôi là {text = searchText;} dòng. Nếu tôi liên kết SelectedItem với ViewModel của tôi và sau khi một mục nhập tìm kiếm vào AutoCompleteBox, SearchText không rỗng, sau đó khi dữ liệu cơ bản được đặt lại thành null, AutoCompleteBox có thể hiển thị SearchText thay vì chuỗi rỗng. Ai đó có thể giải thích lý do tại sao nó được viết theo cách này, và đề nghị một workaround?

+0

Cảm ơn bạn đã chỉ cho tôi đúng hướng. –

Trả lời

1

Tôi tin rằng đó là khi không có mục tìm kiếm thực sự, hộp hiển thị nội dung như "Tìm kiếm tại đây". Ví dụ, xem hộp tìm kiếm của StackOverflow, trong đó nói "tìm kiếm" khi nó trống.

+0

Âm thanh và giao diện ngay từ mã có sẵn. – cofiem

1

Điều này thực sự gây phiền nhiễu và tôi chưa tìm thấy bản sửa lỗi. Nó nằm trên bộ theo dõi vấn đề Silverlight Toolkit here. Tôi cũng đã đọc một cái gì đó here về việc thiết lập ItemsSource thành null mà tôi sẽ chơi với.

Tôi sẽ cập nhật nếu tôi tìm giải pháp thay thế.

Các vấn đề liên quan