gpt4 book ai didi

.net - 如何将特定值传递给转换器参数?

转载 作者:行者123 更新时间:2023-12-03 06:07:39 26 4
gpt4 key购买 nike

我创建了一个类似这样的 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>

当然,代码中的 ??? 不起作用:) 问题是我想创建一个 genderConverter 转换器来比较给定的值,即 personObject.Gender,针对参数中提供的给定 Person.GenderType 值,如果值匹配,则返回 true

我不知道如何让转换器参数传递 Person.GenderType.FemalePerson.GenderType.Malenull,分别用于第一个、第二个和第三个单选按钮。

最佳答案

尝试使用 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());

关于.net - 如何将特定值传递给转换器参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5702737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com