1

いいえ、複数のチェックボックスを作成するボタンを作成しました。wp7 のクリック数。私がそれに使用したコードの下。

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
   <TextBox x:Name="txtNewTask" HorizontalAlignment="Left" Height="72" TextWrapping="Wrap" VerticalAlignment="Top" Width="328"/>
   <Button x:Name="btnAdd" Content="add" HorizontalAlignment="Left" Margin="328,0,0,0" VerticalAlignment="Top" Width="123" Click="btnAdd_Click"/>
   <ListBox x:Name="lbToDoList" Margin="0,72,0,0">
   <ListBox.ItemTemplate>
       <DataTemplate>
         <CheckBox Click="CheckBox_Click" Background="{x:Null}">
           <StackPanel Orientation="Horizontal">
             <TextBlock Text="{Binding}" Name="tbkTextName" VerticalAlignment="Center"     Margin="5,0,5,0" />
           </StackPanel>
         </CheckBox>
       </DataTemplate>
     </ListBox.ItemTemplate>
   </ListBox>
</Grid>

アプリを終了して再度開くと、チェックボックスがオフになっており (デフォルト状態)、その状態が保存されていないことに気付きました。複数のチェックボックスの値または状態を保存するのを手伝ってもらえますか?

複数のチェックボックスの状態を保存するのを手伝ってくれる人はいますか。よろしくお願いします。

作成されたチェックボックスのイメージ

4

3 に答える 3

0

IsolatedStorage.ApplicationSettingsを使用する

アプリケーション設定にアクセスするための 2 つのヘルパー メソッドを次に示します。

    /// Get the current value of the setting, or if it is not found, set the 
    /// setting to the default setting.
    protected valueType GetValueOrDefault<valueType>(string Key, valueType defaultValue)
    {
        valueType value;
        object storedValue = null;

        try
        {
            if (_isolatedStore.TryGetValue(Key, out storedValue))
            {
                value = (valueType)(_isolatedStore[Key] ?? defaultValue);
            }
            else
            {
                //the key was not found
                value = defaultValue;
            }
        }
        catch (Exception ex)
        {
            value = defaultValue;
            Logger.Error(ex, "Exception while getting IsolatedStorageSettings: ");
        }


        return value;
    }

    protected bool AddOrUpdateValue(string Key, Object value)
    {
        bool valueChanged = false;
        object storedValue = null;

        try
        {
            if (_isolatedStore.TryGetValue(Key, out storedValue))
            {
                if (storedValue != value)
                {
                    _isolatedStore[Key] = value;
                    valueChanged = true;
                }
            }
            else
            {
                //the key was not found
                _isolatedStore.Add(Key, value);
            }
        }
        catch (Exception ex)
        {
            Logger.Error(ex, "Exception while adding IsolatedStorageSettings.");
        }

        return valueChanged;
    }

そして、次のように、IsolatedStorage によってサポートされる設定クラスまたはビュー モデルにプロパティを作成できます。

    string CheckBoxValueKeyName = "checkbox_value";
    bool CheckBoxValueDefault = false;

    public bool CheckBoxValue
    {
        get
        {
            return GetValueOrDefault<bool>(CheckBoxValueKeyName, CheckBoxValueDefault );
        }
        set
        {
            AddOrUpdateValue(CheckBoxValueKeyName, value);
        }
    }

ボックスをオンにした変更をすぐに分離ストレージに適用したくない場合は、WP7 トゥームストーン ヘルパーを使用すると、アプリのトゥームストーン後にコントロールの状態を保持できます。そのため、アプリケーションを閉じた後の永続的なストレージには、分離ストレージを使用してください。

于 2013-04-09T19:57:12.657 に答える