當你有這樣的:
SelectedItem="{Binding Path=Name}"
它會用什麼現在在組合框中被選中,Name的類屬性被用作Selected。沒有路徑,你綁定到該組合框名稱對象。但反正,這應該不適用於Path的情況。因此,有你想要它,試試這個它的工作:
有綁定到CharacterEntity類的SelectedItem:
SelectedItem="{Binding SelectedEntity}" // Class instance of CharacterEntity
然後你必須綁定到名稱的選定實體類物業的文字:
Text="{Binding Path=Name}" // Binded to property of Name
SelectedValue="{Binding Path=Tag}" // Binded to property of Tag
這樣它應該工作。您應該有一個綁定到viewmodel的組合框,並且該視圖模型應該具有SelectedEntity的屬性(CharacterEntity的類實例)。希望這有助於:
public class CharacterViewModel
{
public CharacterEntity SelectedEntity {get;set;}
public List<CharacterEntity> characters {get;set;} // use ObservableCollection insteand of List(Automatically update UI if list changes)
}
和XAML:
<ComboBox x:Name="cmbCharacters1" HorizontalAlignment="Left" Margin="18,21,0,0" VerticalAlignment="Top" Width="136" SelectedIndex="0" Height="32" RenderTransformOrigin="1.53,-1.281"
ItemsSource="{Binding characters}" Text="{Binding Path=Name}" SelectedItem="{Binding SelectedEntity}" SelectedValue="{Binding Path=Tag}"/>
也有代碼隱藏例如,在構造函數中:
CharacterViewModel charViewModel = new CharacterViewModel();
cmdCharacters1.DataContext = charViewModel;
cmdCharacters1.ItemsSource= charViewModel.characters;
我在解釋這一可怕的,但我希望這是有道理的用我的代碼。
我不確定如果我沒有記錯,但可能是您應該使用DisplayMemberPath而不是文本。 –