Это так просто, и вы можете написать конвертер для преобразования строки в bool.
public class StringToBoolConvert : IValueConverter
{
public string TrueString { get; set; } = "true";
/// <inheritdoc />
public object Convert(object value, Type targetType, object parameter, string language)
{
if (TrueString.Equals(value?.ToString()))
{
return true;
}
return false;
}
/// <inheritdoc />
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotSupportedException();
}
}
А затем вы можете добавить StringToBoolConvert к ресурсу.
<Page.Resources>
<local:StringToBoolConvert x:Key="StringToBoolConvert" TrueString="1"></local:StringToBoolConvert>
</Page.Resources>
Выможно использовать StringToBoolConvert в DataTemplate.
<ListView ItemsSource="{x:Bind List}">
<ListView.ItemTemplate >
<DataTemplate x:DataType="x:String">
<Grid>
<StackPanel>
<TextBlock x:Name="Text" Text="{x:Bind}" ></TextBlock>
<CheckBox IsChecked="{x:Bind Converter={StaticResource StringToBoolConvert}}"></CheckBox>
</StackPanel>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Мы пишем некоторый код для привязки в ListView.
public MainPage()
{
this.InitializeComponent();
DataContext = this;
}
public ObservableCollection<string> List { get; set; } = new ObservableCollection<string>()
{
"1", "2", "3"
};
И мы используем StringToBoolConvert и устанавливаем TrueString, где значение равно true, икогда мы проверяем CheckBox.
Для мы устанавливаем TrueString в «1», и мы будем проверять CheckBox, когда значение «1».Попробуйте запустить код, и вы увидите это изображение.