WPF边界数据触发奇怪的行为
当我为WPF边界数据触发奇怪的行为,wpf,data-binding,storyboard,caliburn.micro,datatrigger,Wpf,Data Binding,Storyboard,Caliburn.micro,Datatrigger,当我为Binding={Binding IsCrit}设置值为“False”时,程序似乎运行良好,但这与我需要的正好相反,因为我只希望动画/故事板在某个技能的命中至关重要时播放。我只希望在IsCrit为“True”时播放彩色动画和故事板。但是,当我将值设置为True时,它就不会播放动画或情节提要 当我将其设置为false时,“动画”将在每个技能上播放,但当某个技能IsCrit为True时,动画将不会播放该项目。当我将Datatrigger值设置为True 我对WPF比较陌生,所以大部分WPF都是
Binding={Binding IsCrit}
设置值
为“False”时,程序似乎运行良好,但这与我需要的正好相反,因为我只希望动画/故事板在某个技能的命中至关重要时播放。我只希望在IsCrit
为“True”
时播放彩色动画和故事板。但是,当我将值设置为True
时,它就不会播放动画或情节提要
当我将其设置为false时,“动画”将在每个技能上播放,但当某个技能IsCrit
为True
时,动画将不会播放该项目。当我将Datatrigger
值设置为True
我对WPF比较陌生,所以大部分WPF都是我在网上找到的片段。这是否与我的边框
位于堆栈面板
中有关
整个过程被包装在一个ListView.ItemTemplate
中,因为这可能与它不工作有关
下面是我的能力view.xaml的完整分类
大约每1-2秒插入一个新项目,因此我不需要对该项目使用NotifyPropertyChanged
事件。其他项以相同的方式绑定,一个新的视图模型被插入到列表视图所使用的集合中
复制到剪贴板时,Caliburn micro click事件也可以正常工作。我唯一的问题是当值为true时事件没有触发。此数据是否仅在发生更改时触发
当一个值为真时,是否有办法使用条件触发器?这就是我解决问题的方法。使用两个不同的模板,并实现TemplateSelector
public class AbilityItemTemplateSelector : DataTemplateSelector
{
public DataTemplate Critical { get; set; }
public DataTemplate Normal { get; set; }
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
var logItem = item as CombatLogViewModel;
if (logItem != null)
{
return logItem.IsCrit ? Critical : Normal;
}
return base.SelectTemplate(item, container);
}
}
您的意思是当y