私は、リストボックスと2つの別々のバインディングの問題があります。これは、texboxを含むitemtemplateです。リストボックス内のバインディングitemtemplateの問題
1)リストボックスは1つの文字列のリストにバインドします。作成されたテキストボックス内に各文字列を表示し、同時に双方向バインディングを許可するにはどうすればよいですか?パスまたはXPathを指定しないと、双方向バインディングは許可されません。
<ListBox Height="231" HorizontalAlignment="Left" Margin="0,167,0,0" Name="listBoxKeys" VerticalAlignment="Top" Width="219" ItemsSource="{Binding Path=SelectedPlatform.Keys}" SelectedItem="{Binding Path=SelectedKey,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="0,0,0,0">
<TextBox Text="{Binding Mode=OneWay}" Margin="0,0,0,0" Height="Auto" MinWidth="80" MaxWidth="80" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
そして2)私は、カスタムKeyValuePairクラスのいくつかの一般的なリストに結合する別のリストボックスを使用します。 itemtemplateには、テキストボックスとコンボボックスが含まれています。テキストボックステキストは、各KeyValuePairオブジェクトのkeyプロパティにバインドされ、combobox selecteditemはvalueプロパティにバインドされます。私の問題は、実行時に変更されるviewmodelで宣言された文字列のリストでコンボを埋めたいということです。ウィンドウのdatacontextは、リストが宣言されているビューモデルです。私はそこにコンボボックスのアイテムソースをバインドするために必要な正確な構文を知らない。ここに私のコードです:
<ListBox Height="393" HorizontalAlignment="Left" Margin="0,72,0,0" Name="listBoxActions" VerticalAlignment="Top" Width="254" ItemsSource="{Binding Path=SelectedPlayer.ControlProfile.MappedActions}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="0,0,0,0">
<TextBox Text="{Binding Key, Mode=TwoWay,UpdateSourceTrigger=LostFocus}" Margin="10,0,0,0" Height="Auto" MinWidth="80" MaxWidth="80" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<ComboBox Margin="10,0,0,0" Height="Auto" MinWidth="80" MaxWidth="80" HorizontalAlignment="Left" VerticalAlignment="Center" ItemsSource="{Binding ?}" SelectedItem="{Binding Value, Mode=TwoWay}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
あなたは二人が正解かもしれませんので、一部の人々は1とされていない他のに答えることができます見つけるつもりだとして、これは実際には2つの別々の質問されている必要があります。これにより、正しい答えとしてマークするのが難しくなります。 –