爲了說明成功和失敗,我將使用以下後端。在每種情況下,我都有一些東西,並且一個屬性設置爲array.First()。UWP Combobox SelectedItem忽略其綁定值
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; }
}
因此,這裏是在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>
這裏是對於未能選擇
<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>
另外備用項相同的代碼只要我打開Mode=TwoWay
,就會在初始綁定期間清除VM中的值。
所以我的問題是,爲什麼?導致這種情況有什麼不同?
什麼是您的輸出窗口說什麼? –
你在這裏得到了非常有趣的問題。我會在未來的採訪中使用它:) – AlexDrenea