我有一個包含一些專案的組合框,我以這種方式填充組合框:
var files = Directory.GetFiles(Constants.TranslationsPath);
var items = new ObservableCollection<Translation>();
using var db = new AlAnvarDBContext();
if (files.Count() > 0)
{
foreach (var file in files)
{
var id = Path.GetFileNameWithoutExtension(file);
var trans = db.Translations.Where(x => x.Link.Contains(id)).FirstOrDefault();
if (trans != null)
{
items.Add(trans);
}
}
cmbTranslators.ItemsSource = items;
cmbTranslators.SelectedItem = Settings.DefaultTranslation;
}
和 xml:
<ComboBox x:Name="cmbTranslators">
<ComboBox.ItemTemplate>
<DataTemplate x:DataType="table:Translation">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{x:Bind Name}"/>
<TextBlock Text="-"/>
<TextBlock Text="{x:Bind Language}"/>
<TextBlock Text="-"/>
<TextBlock Text="{x:Bind Translator}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
問題是未選擇默認專案(SelectedItem),我需要在組合框中選擇默認專案。
uj5u.com熱心網友回復:
cmbTranslators.SelectedItem = cmbTranslators.Items.Where(x=>((Translation)x).Id == Settings.DefaultTranslation.Id).FirstOrDefault();
uj5u.com熱心網友回復:
是否可能Settings.DefaultTranslation
不等于items
專案集合中的任何一個,這就是分配沒有發生的原因?Settings.DefaultTranslation
也許你可以像第一個元素一樣將它添加到你的集合中并設定cmbTranslators.SelectedIndex = 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/482248.html
上一篇:圖示未出現在彈出式MAUI中
下一篇:從舊資料框創建新資料框