如果我在XAML中定义一个ListBox并在ListBox.ItemTemplate中定义一个关联的DataTemplate,是否可以使用XAML Behaviors来更改所选项目的外观?
E.g。如果我希望单个列表框项目在未选中时由蓝色椭圆表示但希望所选项目由红色椭圆表示,我是否可以使用XAML行为根据用户更改来更改它在运行时的外观选择?
答案 0 :(得分:1)
您需要为(在您的实例中)Selected
VisualStateManager
为 applyOpening: function applyOpening() {
let fields = [];
let formControl = document.querySelectorAll('.form-control');
for (var i = 0; i < formControl.length; i++) {
let field = formControl[i];
let obj = {
key: field.getAttribute('name')
}
if (field.tagName.toLowerCase() === 'input' && field.getAttribute('type') === 'file' ) {
obj.value = {
'encoded_data': getBase64(field.files[0]),
'file_name': field.value
}
} else {
obj.value = field.value
}
fields.push(obj);
}
function getBase64(file) {
let reader = new FileReader();
if (file) {
return reader.readAsDataURL(file);
} else {
return false;
}
reader.onloadend = function() {
return reader.result;
};
}
$.ajax({
url: 'https://jsapi.recruiterbox.com/v1/openings/' + id + '/apply?client_name=clientname',
data: JSON.stringify({ fields: fields }),
dataType: 'json',
contentType: 'application/json',
type: 'POST',
success: function(response) {
console.log(JSON.stringify(data));
},
error: function(er) {
console.error(er);
}
});
}
将为该状态调用的VisualState设置一个自定义Style Template样式,其中是的,您可以显示基于的不同外观该状态包括DOM中的椭圆。