코드 숨김의 const 값에 속성을 바인딩하는 좋은 방법이 있습니까? 내가 콤보 상자를 사용하면WPF에서 xaml의 코드 뒤에 const 멤버를 바인딩
, 나는 보통 뒤에 XAML 코드에서이 방법을 수행
이XAML :
이<ComboBox Name="cbBuz">
<ComboBoxItem Content="foo" Uid="foo" IsSelected="true" />
<ComboBoxItem Content="bar" Uid="bar" />
</ComboBox>
Codebehind가 :
ComboBoxItem item = cbBuz.GetSelectedItem();
switch (item.Uid)
{
case "foo": ... break;
case "bar": ... break;
}
나는이 방법을 선택하는 이유는
다음 :
- ocalization purpose, 마지막으로 선택한 항목을 저장하고로드하는 동안 선택한 항목을 확인하는 데 Content string을 사용해서는 안됩니다.
- 간단히하기 위해 XAML과 코드 숨김은 내부 식별자 (이 경우 Uid)에 연결해야합니다. 따라서 XAML과 코드 숨김은 별도로 유지 관리 할 수 있습니다.
은 그러나, 유지 보수 현명한는 내부 식별자는 다음과 같이 한 곳에서 정의되어야한다 : 문제는 겉으로는 속성이 CONST 값이 될 수있다
//IDs
public const string ID_foo = "foo";
public const string ID_bar = "bar";
...
//
switch (item.Uid)
{
case ID_foo: ... break;
case ID_bar: ... break;
}
을, 그래서 ID_foo을 결합 할 수있는 방법이 없습니다 및 이 같은 ComboBoxItem의 UID에 ID_bar :
//If ID_foo and ID_bar are properties, this will work.
<ComboBox Name="cbBuz">
<ComboBoxItem Content="foo" Uid="{Binding ID_foo}" IsSelected="true" />
<ComboBoxItem Content="bar" Uid="{Binding ID_bar}" />
</ComboBox>
그래서, 나는이 문제를 해결하는 방법을 알고 싶어요. 또는이를 구현하는 더 좋은 방법이 있습니까? 너무 좋을 것입니다. 이 속성에되면, 바인딩을 통해 사용할 수있을
private const string ID_Foo = "foo";
public string FooId
{
get { return ID_Foo; }
}
:
최저
,
고마워요! 이것은 내가 원하는 것입니다!또한, 누수와 오버 헤드와 관련된 정보는 실제로 유용합니다. – Aki24x