Jig*_*Raj 6 silverlight-2.0 silverlight-toolkit silverlight-3.0 silverlight-4.0 silverlight-5.0
我想绑定AutocompleteBox 的SelectedText
和SelectedItem
属性,因为我的客户端希望能够输入文本并从列表中进行选择.它运作正常,但......
MainPage有一个DataGrid.当我从Grid中选择一条记录(即SelectedItem)时,我想在弹出窗口的AutocompleteBox中设置它.有时它可以工作,但有时却没有.
我该怎么办这个问题?
这是我的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>
Run Code Online (Sandbox Code Playgroud)
此属性在我的视图模型中并绑定到DataGrid:
public InvoicesDTO SelectedInvoice
{
get { return _selectedInvoice; }
set
{
SelectedInvoice = value;
SelectedDomoText = SelectedInvoice.DemoText.Trim();
RaisePropertyChanged("SelectedInvoice");
}
}
Run Code Online (Sandbox Code Playgroud)
您不应在autocomplete中同时使用SelectedText和SelectedItem函数。这是AutoCompleteBox的一个bug ......更好的方法是在GotFocus和LossFocus上设置文本框和AutoCompleteBox的可见性。这样你就能坚决解决你的问题
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();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
913 次 |
最近记录: |