Do you have any feedback on the AutoCompleteBox API?

SilverlightI’m working hard to make sure that the AutoCompleteBox control is refined, perfected, and ready to become an important part of Silverlight.

Now that the control shipped in the Silverlight 3 Beta SDK, we do have a little opportunity to make the right API changes before release, if they make sense.

However, once the control ships in the “Mature” quality band, we’ve got to uphold the Silverlight Toolkit quality bands that we’ve set out: and that means no breaking changes.

Looking for your API experience and name feedback

Do you have any strong feedback? How’s this all fit in with the Framework Design Guidelines? Naming?

You’ll find the official documentation for the Silverlight AutoCompleteBox control at http://msdn.microsoft.com/en-us/library/system.windows.controls.autocompletebox(VS.96).aspx (documentation subject to change).

Recent API changes

ValueMemberBinding instead of explicit trio of Converter properties

With the March 2009 release of the Silverlight Toolkit, we dropped the multiple Converter properties for the control, and went for the more powerful Binding experience by exposing the ValueMemberBinding property for handling object-to-text conversions.

Search becomes Filter

The AutoCompleteBox shipped in the first two Silverlight Toolkit releases with some mixed nomenclature, intermixing the use of “Filter” and “Search” to mean the same thing.

Thanks to Cheryl’s feedback (she’s on the UE team), for the next release, these properties will be more consistent, using “Filter”: so, imagine that the AutoCompleteSearchMode enum will become AutoCompleteFilterMode.

Name changes, vs. functionality changes, should have minimal impact on existing applications, styles, and declarative XAML. But we only get one more chance really to make these changes.

Providing feedback

In general, you should provide feedback through the

However, for this particular topic – API names – I think this blog post and the comment section will allow a quick conversation to happen, if you’d like to participate.

And no big promises here: I’m only one person, and we’ll still need to talk with our user education experts, program managers, test team, and make a call w.r.t. where to invest resources before shipping.

Mature Quality Band

The Silverlight Toolkit defines the Mature quality band as follows:

Mature components are ready for full release, meeting the highest levels of quality and stability. Future releases of mature components will maintain a high quality bar with no breaking changes except when such changes are necessary to make them more secure or guarantee future compatibility. Customers should be confident using mature components, knowing that when they upgrade from one version of the Silverlight Toolkit to a newer version it will be a quick and easy process. Due to the heavy focus on backward compatibility between versions, the bar for fixing bugs found in mature components is also considerably higher than any other Quality Band.

I’d really, really like your feedback and suggestions here. Thanks!

Share and Enjoy:
  • Live
  • Digg
  • DotNetKicks
  • Technorati
  • del.icio.us
  • Facebook
  • Print
  • Google Bookmarks

Comments

  1. April 6th, 2009 | 11:31 pm

    Via Twitter, a suggestion was: ” is it possible to make the SelectionAdapter on the AutoCompleteBox a DependencyProperty so it is bindable?”

  2. April 6th, 2009 | 11:46 pm

    Via CodePlex issue tracker, http://silverlight.codeplex.com/WorkItem/View.aspx?WorkItemId=2649 – provide IsReadOnly and IsEnabled properties.

    I think IsEditable is a more WPF-compatible name, that we have considered.

    IsEnabled is something that the framework provides.

  3. Orrin
    April 26th, 2009 | 6:53 am

    Eliminate the need to explicitly call PopulateComplete() when SearchMode is None. The need to call PopulateComplete() appears to break the separation between the View and ViewModel since the ViewModel needs to know what type of control is consuming the data and call the method on it after the data is updated.

  4. alan
    April 29th, 2009 | 5:22 am

    it looks like there might be a bug with valuememberbinding

    after the vaue is set programmatically it is null

    it still functions as expected ie the binding works but you can’t get it’s value

    as for suggestions, i think it would be great if you included a sample that uses ria and also showed how to handle a foreign key in a grid.

    there’s a lot of noise out there on ways to do this but they are not especially clear and/or helpful.

    if you know of a good example that would be terrific

    thanks!
    alan

  5. Zack
    May 21st, 2009 | 6:32 am

    I wish that this supported the MVVM pattern

  6. May 21st, 2009 | 9:06 am

    Zack,
    It does support the MVVM pattern great! As with all controls, you’ll find a tight coupling in your view.

  7. Zack
    June 4th, 2009 | 7:17 am

    Is MVVM supported for situations where the user makes web service calls to populate the autocompletebox?

  8. June 4th, 2009 | 10:32 am

    @Zack,
    Your V-VM can typically work with web service calls, but more often than not, there is a gray area of sorts when doing a lot of these web service calls.

    The need to call PopulateComplete after population could be done is the only real issue here.

  9. PIeter
    June 27th, 2009 | 12:39 am

    Perhaps more a textbox feature, but AutoCompleteBox is also a textbox, is it not possible at this stage to add the text watermark feature as part of all the textboxes in SL3? I had to develop my own versions when the original WaterMarkTextbox was removed – for both TextBox and AutoCompleteTextBox.

    Apologies if I am too far off topic.