0
所以我只想製作一個簡單的組合框,它有2個值,true和false。捕獲是我想要綁定的項目應該接收「1」爲真,「0」接收爲假。如果可能的話,我試圖用純xaml來完成(轉換器可以接受,但我因此無法使其工作)。這裏是我的代碼...WPF中的靜態組合框的簡單值/索引
<ComboBox SelectedItem="{Binding Criteria,Converter={StaticResource BoolToIntConverter}}">
<ComboBox.Items>
<ComboBoxItem Name="True" Content="True" />
<ComboBoxItem Name="False" Content="False" />
</ComboBox.Items>
</ComboBox>
轉換器看起來就像這樣......
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
ComboBoxItem cbo = new ComboBoxItem();
if (value.ToString() == "1")
cbo.Name = "True";
else
cbo.Name = "False";
return cbo;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value.ToString().Contains("True"))
return 1;
return 0;
}
它工作在這個意義上,如果我選擇真正的「1」的設置是否正確,反之亦然,但如果該屬性被代碼中的另一個位置更改爲1或0,則還需要將當前項目設置爲True/False。 Inotifyproperty已更改在綁定的字符串上正確設置,我可以中斷被調用的隱藏點,但該項不會更改。是否有一種簡單的方法在純xaml中使用組合框創建值/索引關係(我不希望使用後備對象來實現此目的)。如果沒有,是否有辦法糾正我的轉換器以獲得我正在尋找的行爲?
通過避免使用MVVM,您正在對自己變得更加困難,因爲這種模式被剪掉了。 – KodeKreachor 2012-04-05 22:11:36
我只是覺得使用MVVM只是爲了確保True意味着1和false意味着0有點矯枉過正,但如果我必須我想我會的。 – 2012-04-06 13:32:00