Bir özelliği codebehind'de const değerine bağlamak için iyi bir yol var mı? Ben ComboBox kullandığınızdaWPF içinde xaml kodunun arkasındaki kodda const üyesine
, genellikle arkasında xaml ve kodda bu şekilde yaparsak:
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;
}
bu şekilde bu nedenle seçtik
izleyen:
- l için ocalization amacı, seçilen bir öğenin kaydedilmesi ve yüklenmesi sırasında hangi öğenin seçildiğini belirlemek için İçerik dizesi kullanılmamalıdır.
- Basitlik için, XAML ve kod arkasına iç tanımlayıcı bağlanmalıdır (Bu durumda, Uid). Böylece, XAML ve Code-behind ayrı ayrı tutulabilir.
Ancak, bakım-bilge, dahili tanımlayıcı böyle bir yerde tanımlanmalıdır: Sorun görünüşte özellik const değer olamaz edilir
//IDs
public const string ID_foo = "foo";
public const string ID_bar = "bar";
...
//
switch (item.Uid)
{
case ID_foo: ... break;
case ID_bar: ... break;
}
yüzden ID_foo bağlamak için hiçbir yolu yoktur ve böyle ComboBoxItem ait Uid için 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>
Yani, bu sorunu çözmek için nasıl bilmek istiyorum. Veya, onu uygulamak için daha iyi bir yolu var mı. Çok da güzel olurdu. Bu bir özelliğinde erse de bağlayıcı aracılığıyla kullanılabilir olacaktır
private const string ID_Foo = "foo";
public string FooId
{
get { return ID_Foo; }
}
:
En
,
Çok teşekkürler! Bu tam olarak istediğim şey!Ayrıca, sızıntı ve ek yük ile ilgili bilgiler gerçekten yararlıdır. – Aki24x