2013-09-25 2 views
0

다음과 같은 상황에서 어떻게해야합니까?PhoneTextBox의 텍스트가 사라집니다.

간단한 페이지가 있습니다. 코드 뒤에는 데이터 필터링을 위해 PhoneTextBox 컨트롤을 추가합니다. 그러나 때로는 (자주) 무언가를 쓰려고 할 때 내부의 텍스트가 투명하거나 붕괴 된 것처럼 보입니다. 그래서 나는 그것을 보지 못합니다. 나는이 텍스트를 선택할 때조차도 그것을 보지 못한다.

// Generating of a PhoneTextBox  

SearchBox = new Microsoft.Phone.Controls.PhoneTextBox(); 
SearchBox.DataContext = searchBoxContext; 
SearchBox.Name = string.Format("SearchBox_{0}", Guid.NewGuid()); 
SearchBox.Visibility = Visibility.Collapsed; 

// Adding Phone text box in a Grid on the Page 

RowDefinition rd = new RowDefinition(); 
rd.Height = GridLength.Auto; 
PageDynamicGrid.RowDefinitions.Insert(0, rd); 
Grid.SetRow(generator.SearchBox, 0); 

foreach (FrameworkElement child in PageDynamicGrid.Children) 
{ 
    Grid.SetRow(child, Grid.GetRow(child) + 1); 
} 

SearchBoxContext = (generator.SearchBox.DataContext as SearchButtonModel); 
SearchBoxContext.SearchTextChanged += SearchBoxContext_SearchTextChanged; 
generator.SearchBox.TextChanged += SearchBox_TextChanged; 
generator.SearchBox.LostFocus += SearchBox_LostFocus; 
generator.SearchBox.KeyUp += SearchBox_KeyUp; 
generator.SearchBox.DataContext = null; 
PageDynamicGrid.Children.Add(generator.SearchBox); 
PageDynamicGrid.UpdateLayout(); 

<Grid x:Name="PageDynamicGrid" Background="Transparent"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 

    <StackPanel Grid.Row="0" Margin="12,17,0,28"> 
     <TextBlock Text="{Binding Title}" 
        Style="{StaticResource PhoneTextTitle1Style}" /> 
    </StackPanel> 

    <ListBox Grid.Row="1" Margin="12,0" 
      ItemsSource="{Binding PageDynamicContent, Mode=OneWay}"/>  
</Grid> 

이 거의 (검색 상자 포함)이 페이지의 모든 내용이 동적으로 생성하지만 다른 내용이 일부 버튼과 링크이며, 내가 만약 내가 그것을 필터링해야 page.xaml 검색 창. 필터는 작동하지만 사용자는 검색 창에 접힌 텍스트가 마음에 들지 않습니다. 이처럼 보이는 (그리고 마커의 앞에 존재하지 않는 공백입니다) 그래서

enter image description here

+0

코드에 많은 문제가 있습니다. 문제를 재현하는 간단한 방법으로 줄일 수 있습니까? –

+0

많은 코드가 있다는 것을 알고 있습니다. 유일한 사실은 내가 프로세스에서 PhoneTextBox의 Visibility 속성을 터치하지 않으면 버그가 없다는 것입니다. –

+0

나는 누군가가 이런 종류의 문제에 직면했다고 생각했다. 이것은 두 번째입니다. 첫 번째는 ListPicker로 일부 결과가 표시되지 않았습니다. 그러나 약 1 년 전에 발생했습니다. –

답변

0

그래서, 난 이유를 모르겠어,하지만 그 문제는 행동의 순서에 보였다 :

  1. 먼저 요소를 만들고 격자 열과 행의 정의를 으로 변경하고 격자에 요소를 추가하십시오.
  2. 그리드의 레이아웃을 업데이트하십시오.
  3. 그리고이 모든 작업을 수행 한 후에 만 ​​PhoneTextBox를 접을 수 있습니다.

저에게 적합합니다.

관련 문제