A static member is the same for every instance of the class and its derived children.
The solution you found completely defeats the point of having a static property.
Why do you think you need the property to be static, if it can be different for every child class?
Edit: example implementation.
public abstract class A
{
public string F { get; protected set; }
}
public class B : A
{
public B()
{
F = "B Class";
}
}
public class C : A
{
public C()
{
F = "C Class";
}
}
Hope this helps.