2013-09-25 27 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(); 

和page.xaml

<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> 

幾乎本頁所有內容(包括搜索框)動態創建,但其他內容是一些按鈕和鏈接,我需要對其進行過濾,如果我有搜索框。過濾器有效,但用戶不喜歡搜索框中的摺疊文本。因此,它看起來像(並沒有一個空格在標記前)

enter image description here

+0

有一個可怕的很多代碼中的事情。你可以把它簡化爲更簡單的方法來重現問題嗎? –

+0

我知道,有很多代碼。 我注意到的唯一的事情是,如果在創建過程中沒有觸摸PhoneTextBox的Visibility屬性,那麼就沒有錯誤。 –

+0

我以爲有人遇到過這樣的問題。這是我第二次看到它。首先是ListPicker,沒有顯示一些挑選的結果。但是它發生在大約半年前。 –

回答

0

所以,我不知道爲什麼,但它似乎是問題是在操作的順序:

  1. 首先創建元素,更改網格列和行定義 並在網格中添加元素。
  2. 更新網格佈局。
  3. 而且只有這一切的行動,我們可以摺疊PhoneTextBox後。

它爲我工作。