¿Cómo puedo hacer que el valor de una variable rastree el valor de otra

Aquí hay un ejemplo muy simplificado de lo que tengo ahora:

public static class Settings
{
    public static TH th;
}

public partial class PhrasesFrame
{
    private void SetC1Btn()
    {
        var a = (int)Settings.th;
        vm.C1BtnLabelTextColor = phrase.C1 == true ?
            Styles.A[(int)Settings.th] :
            Styles.A[(int)Settings.th];
    }

Me gustaría reemplazar esto con:

public partial class PhrasesFrame
{
    // The value of Settings.th can change at any time

    // I want the value of id to change when the 
    // value of (int)Setting.th changes. The way
    // it's coded now I realize it's just a one
    // time assignment

    var id = (int)Settings.th; 

    private void SetC1Btn()
    {
        var a = (int)Settings.th;
        vm.C1BtnLabelTextColor = phrase.C1 == true ?
            Styles.A[id] :
            Styles.A[id];
    }

Respuestas a la pregunta(2)

Su respuesta a la pregunta