2016-10-24 4 views
2

は、WPFからAutoCompleteTextBoxための「アイテムソースの」セットアップ私はWPFの基本バージョンでは、あなたは、ドロップダウンのオプションのためのItemSourceでコンボボックスを設定することができることを知っている:トラブル拡張ツールキット

ComboBox box = new ComboBox(); 
box.ItemSource = List<string> exampleList; 

WPF Extended Toolkitを使用してAutoCompleteTextBoxで同じ機能を試していますが、 "Item Source"プロパティはありません。私は過去数日間オンラインの例を見てきましたが、提案リストが生成されている例はまだ見つかりません。私は適切にツールキットの名前空間を含めるように私のXAMLを設定していると、実際のテキストボックスには罰金を示しています。

<Window x:Class="complianceAuthApp.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:local="clr-namespace:complianceAuthApp" 
    xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"   
    mc:Ignorable="d" 
    Title="Authorization Submission App" Height="290" Width="747" Closing="Window_Closing" ResizeMode="CanMinimize"> 
    <grid> 
     ... 
      <xctk:AutoSelectTextBox 
       Name="lastNameAutoTextBox" 
       AutoWordSelection="True" 
       BorderBrush="DarkGray" 
       AutoSelectBehavior="OnFocus" 
       Margin="21,35,586,193"/> 
    </Grid> 
</Window> 

はしかし、私は、テキストボックス内の文字の数が3以上に達するたびにSQLクエリを実行したい:

public void getAutoTextBoxItemSource() 
{ 

    if (lastNameAutoTextBox.Text.Length < 3) 
       return; 

    List<string> results = new List<string>(); 
    SqlConnection cnn = new SqlConnection(ConfigurationManager["SQLQuery"].ConnectionString); 
    string sqlCommand = "SELECT TOP 10 ... "; 

    cnn.Open(); 
    SQL.DataSet ds = new SQL.DataSet(); 
    SQL.DataTable dtable = new SQL.DataTable(); 
    SqlDataAdapter dscmd = new SqlDataAdapter(sqlCommand, cnn); 


    int t = await Task.Run(() => dscmd.Fill(dtable)); 
    foreach (SQL.DataRow row in dtable.Rows) 
    { 
     results.Add(new string); 
    }    

    //If there WERE to be an ItemSource Property... 
    lastNameAutoTextBox.ItemSource=results; 

    } 
} 

私のニーズに合ったサンプルを見つけることができず、過去数日間、この方法でプロジェクトを実装する方法を理解しようとしています。

答えて

4

XAMLのコントロールは<xctk:AutoSelectTextBoxです。 Xceed.Wpf.Toolkit.AutoSelectTextBox is a textbox which selects its text automatically when the user tabs into it。自動完成テキストボックスではありません。

different WPF Toolkitが必要です。ダウンロードページに移動し、WPFToolkit.msiをダウンロードしてインストールします。 C:\Program Files (x86)\WPF Toolkit\v3.5.50211.1\にアセンブリのラフトをインストールします。 WPFプロジェクトの「参照」を右クリックし、「参照の追加」を選択します。ダイアログで[参照...]をクリックし、C:\Program Files (x86)\WPF Toolkit\v3.5.50211.1\を参照してください。

System.Windows.Controls.Input.Toolkit.dll 
WPFToolkit.dll 

これらを選択して追加します。

次に、あなたのXAMLにこの名前空間を追加します。

xmlns:toolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input.Toolkit" 

をそして、あなたは使用することができるはずtoolkit:AutoCompleteBox

<toolkit:AutoCompleteBox 
    ItemsSource="{Binding Items}" 
    /> 

あり、これについて他の回答がありますが、私の知る限りでは、彼らは「言うことができるように不完全なおよび/または時代遅れの私はMSIがアセンブリをどこに置くか言ったものを見つけることができませんでした。 VSのツールボックスパネルに「データビジュアライゼーション」セクションがあります。それはある時点でのケースかもしれませんが、VS 2015ではインストールしたばかりのバージョンではありません。多分、YMMV。

+0

さて、明らかになっていたはずのことを指摘していただきありがとうございます。私はちょうど20分前に、テキストボックスが私が思っていたものとは異なる意図された目的を持っていることを認識しました。私はこのライブラリを調べ、試してみます。ありがとうございました! – Rinktacular

関連する問題