私はWPFとCaliburn.Microの新機能が新しくなっています。 私がしようとしているのは、コンボボックスを動的に作成することです。 基本的に私はオートコンプリートタイプのテキストボックスを作成しようとしていますが、コンボボックスを動的に作成する方法や、xamlにあるコンボボックスにアタッチしてそのプロパティを変更する方法はわかりません。Caliburn.Micro動的にComboboxを作成する
私のXAMLは次のとおりです。
<StackPanel>
<TextBox x:Name="customerNameTxt" Width="150" HorizontalAlignment="Stretch" cal:Message.Attach="[Event TextChanged]=[customerNameTxt_TextChanged()]" />
<ComboBox Height="20" HorizontalAlignment="Left" Name="comboBox1" VerticalAlignment="Top"
ItemsSource="{Binding DropDownSource, Mode=TwoWay}" />
</StackPanel>
あなたは、私はコンボボックスを移入するために結合しています見ることができるように - 私は、この完璧に働いて、だけでなく、テキストボックスにユーザーのタイピングに変更しています。 私は、コンボボックスのプロパティを変更するか、動的に作成して必要なすべてのプロパティにアクセスできるようにしたいと思っています。 私はCaliburn.microを使用しているので、ShellModelView.csファイルからコンボボックスを取得する必要があります。
これについての助力は素晴らしいことです。
UPDATE:アイデアのおかげでWPFToolkit AutoCompleteBoxを試してみてください。私はこれを非常に簡単に動作させることができました。これは、ViewModelで持っていたコードがCaliburn.microを使用してAutoCompleteBoxの値を取得しなくなったことを除いて、素晴らしいことです。ちょっと遊んだ後、私はそれを理解しました - これが正しい方法であるかどうかは分かりませんが、それは私にとってはうまくいきます。これが最善の方法でない場合は、これを行う他の方法を聞くことに興味があります。ここで
は私のXAMLである:ここでは
<toolkit:AutoCompleteBox x:Name="customerNameTxt" ItemsSource="{Binding DropDownSource}" IsTextCompletionEnabled="True" Grid.Row="0" Grid.Column="2" cal:Message.Attach="[Event SelectionChanged]=[Action customerNameTxt_SelectionChanged($eventargs)]" />
は私のViewModelである:それは前にあったよう
public void customerNameTxt_SelectionChanged(SelectionChangedEventArgs e)
{
BindObj obj = e.AddedItems[0] as BindObj;
if (null != obj)
{
customerNameTxt = obj.Text;
}
}
は今私の財産customerNameTxtが設定されています。
より良いテクニックのヒントは素晴らしいでしょう。私が言ったように、私はこのWPFのものに新しいので、まだ多くを学ぶ。
おかげで、
Mudders
ComboBoxのどのプロパティを表示するかを変更する必要がありますか?なぜあなたはあらかじめビルド済みのオートコンプリートを使用していませんか? – foson