我有以下情况:我有一个预定义的,已经初始化的字典结构。此词典的元素通过 ListBox 显示。在每一行中,有两个 TextBoxes 和一个 RadioButton ,它引用字典中的Country结构变量。当我单击radiobutton时,我将国家/地区名称保存在首选项中,当我重新加载视图时,将恢复已保存的选项。 我的代码如下:
在.XAML文件中: 的 的
的<ListBox Height="Auto" Margin="0, 0, 0, 16" x:Name="CountryCodeSelect_countrylist">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid x:Name="CountryCodeSelect_listfields" Margin="16" Height="64" Width="432" Background="#F2F2F2">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock
Margin="16,0,0,0"
Text="{Binding Key}"
Foreground="Black"
FontSize="24"
FontWeight="Black"
VerticalAlignment="Center"
Grid.Row="0" Grid.Column="0"/>
<TextBlock
Margin="16,0,8,0"
Text="{Binding Value.CountryCode}"
Foreground="Black"
FontSize="24"
FontWeight="Black"
VerticalAlignment="Center"
Grid.Row="0" Grid.Column="1"/>
<RadioButton
Margin="0,0,24,0"
IsChecked="{Binding Path=IsChecked, Converter={StaticResource radioBoolToIntConverter}, ConverterParameter=Value.CountryName}"
GroupName="CountryCodeSelect_countries"
DataContext="{Binding Value.CountryName}"
Grid.Row="0" Grid.Column="2"
HorizontalAlignment="Right"
Click="RadioButton_Click" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
的
我的模型.CS文件: 的 的
的public Dictionary<string, Country> countries = new Dictionary<string, Country>() {
{ "Afghanistan", new Country("Afghanistan", ".com", 93, false) },
{ "Albania", new Country("Albania", ".com", 355, false) },
{ "Algeria", new Country("Algeria", ".com", 213, false) },
. . .
. . .
. .
.
}
public CountryCodeSelect() {
InitializeComponent();
// reload previous saved value
string cn = Persistence.load_countryName();
if (cn != null) {
Country c;
countries.TryGetValue(cn, out c);
c.Checked = true;
countries.Remove(c.CountryName);
countries.Add(c.CountryName, c);
}
CountryCodeSelect_countrylist.ItemsSource = countries;
}
private int _IsChecked;
public int IsChecked { get { return _IsChecked; } set { _IsChecked = value; } }
的
我的问题是:如何将单选按钮初始化为“已选中”?我使用此代码达到的行为是完整列表,显示的是国家/地区名称,以及变量设定。但我的单选按钮都没有显示为已选中。我想知道我是否需要“刷新”页面,但如果是这样,我该怎么办呢?