第一?也許這不是一個好主意。
當你在SelectedItem上使用綁定時,它爲你管理Text屬性值時的權利。
如果您使用ViewModel,我建議您綁定AutocompleteBox的一個屬性,並使用SuburbText prop。在VM中。 (或只是綁定的SelectedItem,你可以使用ValueMemberPath它)
編輯1:
//Suppose myVM.SuburbText is a local variable in VM, this shows Text prp. binding
//But I prefer Object binding with ValueMemberPath,you may use one of them
//But not both together
public string TextWillBeBound
{
get
{
if(SearchResults.SelectedItem!=null)
{
myVM.SuburbText=SearchResults.SelectedItem.TextProperty;
}
else if(myVM.SuburbText="")
{
myVM.SuburbText="Please write...";
}
return myVM.SuburbText;
}
set
{
if(SearchResults.SelectedItem==null)
{
myVm.SuburbText=value;
//with value you may create Suburb object ? and set as Selected.
//Depending on what you aim. I suggest using SelectedItem & ValueMemberPath
}
}
}
//我怎麼會用這個控制
前//你也可以綁定的SelectedItem和使用ValueMemberPath,如下所示。
<sdk:AutoCompleteBox MinimumPopulateDelay="500" MinimumPrefixLength="3"
Populating="AutoCompleteBox_Populating"
SelectedItem="{Binding Path=SELECTEDITEM,Mode=TwoWay}"
ValueMemberPath="DESCRIPTION">
我使用的是虛擬機,需要有兩個屬性是因爲用戶應該可以,如果他想進入一個自由文本和autocompletbox應顯示SuburbText如果SelectedSuburb == NULL。 – Bishoy
我編輯了我的帖子,TextWillBeBound將會在你的虛擬機的公共屬性中綁定到Text屬性。你也可以使用TwoWay –