여러 항목을 선택할 때 사용자 정의 문자열을 어떻게 표시합니까?

StackOverflow https://stackoverflow.com/questions/634630

  •  10-07-2019
  •  | 
  •  

문제

양식의 모든 컨트롤을 관리하는 데 도움이되는 속성 그리드가 있습니다. 이러한 컨트롤은 디자이너 유형의 사람들을위한 것이므로 누군가가 여러 객체를 선택할 때까지 사용자 인터페이스에 대해 걱정하지 않습니다.

이 공통 개체에 대한 "효과 유도체"속성에 대한 uitypeeditor가 있습니다. 그것은 단위 (미터 대 발)를 추적하고 즉시 좋은 일을합니다. 그러나 누군가가 두세 개의 공통 객체를 선택하면 동일한 텍스트 문자열로 평가하더라도 Effectivediameter는 비어 있습니다.

예를 들어, 대부분의 컨트롤에서 Microsoft에는 "앵커"속성이 "상단, 오른쪽"의 텍스트 출력이 있습니다. 당신이 그것을 아래로 당기면 그것은 멋진 uitypeeditor가있는 물체입니다. 그러나 양식에서 동일한 앵커 설정을 갖는 5 개의 객체를 선택하면 속성 그리드에서 문자열 "위, 오른쪽"을 볼 수 있습니다.

/// <summary>
/// The default containing class for all Unit-Management Conversion classes.
/// </summary>
[
 Serializable,
 EditorAttribute(typeof(umConversionTypeEditor), typeof(UITypeEditor)),
 TypeConverter(typeof(umConversionTypeConverter)),
]
public class umConversion
{
    ...
}


public class umConversionTypeEditor : UITypeEditor
{
    ...
}



// Now, in my designer class, I have ...
private double _effectiveDiameter { get; set; }

[DisplayName("Effective Diameter")]
public virtual umConversion EffectiveDiameter
{
    get
    {
            umConversion ret = new umConversion (_effectiveDiameter);
            ret.MeasureInSI = _si;
            return ret;
        }
        set
        {
           _effectiveDiameter = value.ImperialUnits;
        }
    }
}

앵커처럼 속성 그림에 효과를 얻을 수 있도록 어떻게 동일한 유효 직경을 가진 몇 가지 사용자 정의 객체를 선택하면 어떻게해야합니까? 지금, 그 필드는 항상 비어 있습니다.

도움이 되었습니까?

해결책

귀하의 설명에서 유형의 이중 효과에 대해 이야기하는 것 같습니다. 그러나 샘플에서는 umconversion 클래스에 대한 uitypeeditor를 보여줍니다. 그러니 명확히 해주세요.

귀하의 재산이 실제로 원시 유형이 아닌 자신의 클래스 인 두 번째 경우에있는 경우 평등 방법을 구현하십시오. MS PropertyGrid의 multipropertydescriptorgridentry 클래스는 모든 대상 인스턴스가 동일한 값을 가지고 있는지 알기 위해 동일합니다. 이것이 당신의 문제인지 확실하지 않지만, 나는이 가능성을 제거하기 위해 그것을 테스트 할 것입니다.

다른 팁

장소 a TypeConverter 각 속성의 속성도 ..

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top