Um Erfolg und Misserfolge zu veranschaulichen, werde ich das folgende Backend verwenden. In jedem Fall habe ich ein Array von Dingen und eine Eigenschaft, die auf das Array festgelegt ist.First().UWP Combobox SelectedItem ignoriert seinen gebundenen Wert
public class MainPage
{
public MainPage()
{
this.InitializeComponent();
FirstString = Strings.First();
FirstItem = Items.First();
}
public string FirstString { get; set; }
public Item FirstItem { get; set; }
public string[] Strings => new[] {"1", "2", "3", "4"};
public Item[] Items => new[]
{
new Item {Index = 1},
new Item {Index = 2},
new Item {Index = 3},
new Item {Index = 4}
};
}
public class Item
{
public int Index { get; set; }
}
so ist hier eine Bindung führt zu dem Objekt in den SelectedItem
<ComboBox ItemsSource="{x:Bind Strings}"
SelectedItem="{x:Bind FirstString}">
<ComboBox.ItemTemplate>
<DataTemplate x:DataType="system:String">
<TextBlock Text="{x:Bind}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Und hier ist der gleiche Code für die alternativen Elemente, die
<ComboBox ItemsSource="{x:Bind Items}"
SelectedItem="{x:Bind FirstItem}">
<ComboBox.ItemTemplate>
<DataTemplate x:DataType="local:Item">
<TextBlock Text="{x:Bind Index}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Zusätzlich zur Auswahl versagt sobald ich Mode=TwoWay
einschalten löscht dies meinen Wert in der VM während der ersten Bindung.
Also meine Frage ist, warum? Was ist anders, um das zu verursachen?
Was sagt das Ausgabefenster? –
sehr interessante Frage, die Sie hier bekommen haben. Ich werde es in meinen Interviews verwenden :) – AlexDrenea