我希望創建一個控件,我稱之爲「AutoCompleteListBox」。如果您曾經使用hotmail發送電子郵件,那麼to:address線的工作方式就是我想要創建的。你有什麼看起來像一個輸入框,當你鍵入你得到一個匹配對象的下拉列表。一旦選擇了一個對象(聯繫人),它就會以矩形對象的形式添加到輸入框中。多個對象可以通過這種方式添加,輸入框就像一個包裝面板。您可以通過退格或單擊每個對象來刪除對象。Silverlight/WPF自定義控件模板幫助
我的方法是從子類化ItemsControl開始。我已經開始編寫它的控制模板,它基本上是一個包裝面板,我想顯示裝訂項目+文本框。我不知道如何讓綁定項目和文本框位於同一個包裝面板中。這是我有:
<Style TargetType="ctrl:AutoCompleteListBox">
<Setter Property="Width" Value="200"/>
<Setter Property="Height" Value="100"/>
<Setter Property="Background" Value="White"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ctrl:AutoCompleteListBox">
<ScrollViewer x:Name="RootScrollViewer" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" Padding="0" Background="{TemplateBinding Background}">
<toolkit:WrapPanel IsItemsHost="True">
<!--Items Bound To ItemSource Go Here-->
<TextBox x:Name="txtInput"/>
</toolkit:WrapPanel>
</ScrollViewer>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我不知道如何表達我想要的。我知道你可以在控件模板中使用「ItemsPresenter」來顯示綁定項目,但是如何將我的文本框添加到與綁定項目相同的面板中?
我非常感謝任何幫助。這是否正確的方法來解決它?非常感謝。