Dot-Net
如何將特定值傳遞給轉換器參數?
我創建了一個類 Person,如下所示:
public class Person { public enum GenderType { Female, Male } public string Name { get; set; } public GenderType? Gender { get; set; } }接下來,我創建了將呈現 Person 類型對象的數據模板。
這是 XAML 程式碼:
<DataTemplate x:Key="personTemplate" DataType="{x:Type model:Person}"> <StackPanel> <RadioButton Content="Female" IsChecked="{Binding Path=Gender, Converter={StaticResource genderConverter}, ConverterParameter=???}"/> <RadioButton Content="Male" IsChecked="{Binding Path=Gender, Converter={StaticResource genderConverter}, ConverterParameter=???}"/> <RadioButton Content="Not specified" IsChecked="{Binding Path=Gender, Converter={StaticResource genderConverter}, ConverterParameter=???}"/> </StackPanel> </DataTemplate>當然
???,程式碼中的 s 不起作用 :) 問題是我想創建一個genderConverter轉換器,它將比較給定的值,即與參數中提供personObject.Gender的給定值進行比較,如果值匹配則返回。Person.GenderType``true我不知道如何使轉換器參數分別為第一個、第二個和第三個單選按鈕傳遞
Person.GenderType.Female,Person.GenderType.Male和。null
嘗試使用
x:Static標記擴展:<RadioButton Content="Female" IsChecked="{Binding Path=Gender, Converter={StaticResource genderConverter}, ConverterParameter={x:Static model:GenderType.Female}}"/>或者,您可以只傳遞一個字元串並用於
Enum.Parse將該字元串轉換為轉換器中的枚舉類型:<RadioButton Content="Female" IsChecked="{Binding Path=Gender, Converter={StaticResource genderConverter}, ConverterParameter=Female}"/>GenderType gender = (GenderType)Enum.Parse(typeof(GenderType), parameter.ToString());