如何在模板中设置单选按钮?

时间:2012-11-16 17:42:30

标签: c# windows-phone-7 radio-button

我有以下情况:我有一个预定义的,已经初始化的字典结构。此词典的元素通过 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; } }

我的问题是:如何将单选按钮初始化为“已选中”?我使用此代码达到的行为是完整列表,显示的是国家/地区名称,以及变量设定。但我的单选按钮都没有显示为已选中。我想知道我是否需要“刷新”页面,但如果是这样,我该怎么办呢?

0 个答案:

没有答案