1

SilverlightToolkit の AutoCompleteBox コントロールで TextWrapping を有効にする方法 (2009 年 11 月)? ラッピング モードを設定するプロパティはありません。回避策はありますか?

スヴェン

現在の問題に関する詳細情報は次のとおりです。私にとって、AutoCompleteBox は、すべての可能な値を表示するリストと、検索文字列を入力して選択した値を表示する TextBox で構成されます。TextBox で選択した値がラップされるようになりました。

ここに、DataGrid で AutoCompleteBox を使用する現在の XAML を示します。

<data:DataGrid x:Name="GrdComponents" 
               ItemsSource="{Binding Path=Components}" AutoGenerateColumns="false" 
               Margin="4" VerticalAlignment="Stretch" VerticalContentAlignment="Stretch"
               HorizontalScrollBarVisibility="Visible">
  <data:DataGrid.Columns>  
    <data:DataGridTemplateColumn Header="Component" Width="230">
      <data:DataGridTemplateColumn.CellEditingTemplate >
        <DataTemplate>
          <input:AutoCompleteBox Text="{Binding Component.DataSource, Mode=TwoWay, ValidatesOnExceptions=True, NotifyOnValidationError=True}" 
                                 Loaded="AcMaterials_Loaded" 
                                 x:Name="Component"  
                                 SelectionChanged="AcMaterial_SelectionChanged"
                                 IsEnabled="{Binding Component.IsReadOnly, Mode=OneWay, Converter={StaticResource ReadOnlyConverter}}" 
                                 BindingValidationError="TextBox_BindingValidationError"
                                 ToolTipService.ToolTip="{Binding Component.Description}" 
                                 IsTextCompletionEnabled="False" FilterMode="Contains" 
                                 MinimumPopulateDelay="1" MinimumPrefixLength="3"
                                 ValueMemberPath="Description">
            <input:AutoCompleteBox.ItemTemplate>
              <DataTemplate>
                <TextBlock Text="{Binding DescriptionTypeNumber}"/>
              </DataTemplate>
            </input:AutoCompleteBox.ItemTemplate>
          </input:AutoCompleteBox>
        </DataTemplate>
      </data:DataGridTemplateColumn.CellEditingTemplate>
    </data:DataGridTemplateColumn>
  </data:DataGrid.Columns> 
</data:DataGrid>

AutoCompleteBox は、リスト (DescriptionTypeNumer) と選択された値 (Description) に異なる値を使用します。

4

2 に答える 2

2

最後に、次のトリックを行いました: テキストボックスのスタイルを定義します...

<UserControl.Resources>
  <Style x:Key="myTBStyle" TargetType="TextBox">
    <Setter Property="TextWrapping" Value="Wrap" />
  </Style>
</UserControl.Resources>

次に、スタイルを割り当てます。

<input:AutoCompleteBox TextBoxStyle="{StaticResource myTBStyle}"/>

スヴェン

于 2010-03-15T09:49:49.153 に答える
0

TextWrapping="ラップ"

コンテキストで:

<TextBlock Margin="5" Text="Enter a date:" TextWrapping="Wrap" />
            <input:AutoCompleteBox VerticalAlignment="Top" Margin="5" Width="170" Height="30" x:Name="myACB" 
                ItemsSource="{Binding}" 
                ValueMemberBinding="{Binding Path=ReleaseDate, Converter={StaticResource FormatConverter}, 
                ConverterParameter=\{0:d\}}" >
            <input:AutoCompleteBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Path=ReleaseDate, Converter={StaticResource FormatConverter}, 
                    ConverterParameter=\{0:d\}}" />
                </DataTemplate>
            </input:AutoCompleteBox.ItemTemplate>
        </input:AutoCompleteBox>

から:

http://msdn.microsoft.com/en-us/library/system.windows.controls.autocompletebox.valuememberbinding(VS.95).aspx

もう一つの例:

<controls:AutoCompleteBox x:Name="Autocomplete_Single" Populating="AutoCompleteBox_Populating" SearchMode="None" IsTextCompletionEnabled="True"  Height="30" Width="100" Margin="10,10,0,0" KeyUp="Autocomplete_Single_KeyUp">
            <controls:AutoCompleteBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal" Margin="10,0,0,0">
                        <TextBlock FontWeight="Bold" Width="80" HorizontalAlignment="Center" FontSize="12" Text="{Binding Mode=OneWay, Path=Name}"/>
                        <TextBlock TextWrapping="Wrap" Width="80" Text="{Binding Mode=OneWay, Path=ValueKindID}" FontSize="12"/>
                    </StackPanel>
                </DataTemplate>
            </controls:AutoCompleteBox.ItemTemplate>
        </controls:AutoCompleteBox>
于 2010-03-11T15:42:27.673 に答える