相关疑难解决方法(0)

WPF - 如何组合DataTrigger和Trigger?

注意我已经问过相关问题:如何组合DataTrigger和EventTrigger?

我有一个包含几个项目的列表框.该项的类实现INotifyPropertyChanged并具有属性IsAvailable.我使用该属性来指示列表中使用不同颜色的不可用选项.

但是,如果所选项目不可用,则前景色应为红色.

<ListBox>
  <ListBox.Resources>
    <DataTemplate DataType="{x:Type local:InstitutionViewModel}">
      <TextBlock Name="Name" Text="{Binding Name}"/>
      <DataTemplate.Triggers>
        <DataTrigger Binding="{Binding IsAvailable}" Value="False">
          <Setter TargetName="Name" Property="Foreground" Value="#888"/>
        </DataTrigger>
      </DataTemplate.Triggers>
    </DataTemplate>
  </ListBox.Resources>
</ListBox>
Run Code Online (Sandbox Code Playgroud)

我使用上面的数据触发器来灰显不可用的项目.

我面临的问题是,选择项目的事实与模板绑定的基础数据无关.我真正想要的是某种多触发器,它支持Trigger依赖属性(ListBoxItem.IsSelected)上的常规以及DataTrigger绑定数据项.

可以在不将选择概念引入我的视图模型的情况下完成吗?

对于任何想知道我为什么不禁用不可用项目的人,请理解应用程序的要求是可以选择不可用的选项.实际上有几个列表框,其中一个选项会影响其他列表框中的可用内容.我无法禁用这些项目,因为如果根据之前的选择禁用了项目,用户将无法改变主意或探索不同的组合.

.net wpf triggers selection listboxitem

50
推荐指数
2
解决办法
2万
查看次数

如何给出EventTrigger的条件?

可以在EventTrigger中给出条件吗?我为Radio按钮编写了一个以下EventTrigger(Mouse.MouseLeave).我希望不应该触发处于Checked条件(IsChecked = True)的项目.

<EventTrigger RoutedEvent="Mouse.MouseLeave" SourceName="border">                                 
      <BeginStoryboard Name="out_BeginStoryboard" Storyboard="{StaticResource out}" />
      <RemoveStoryboard BeginStoryboardName="over_BeginStoryboard" />
</EventTrigger>
Run Code Online (Sandbox Code Playgroud)

请让我知道如何实现这一目标?

提前致谢.

wpf

20
推荐指数
3
解决办法
2万
查看次数

WPF/Silverlight状态 - 从XAML激活?

一个简单的问题:是否可以从XAML激活视图状态?我只能使用VisualStateManager.GotoState()方法从CS激活一个.如果它很容易实现,这将解决我的一些MVVM问题.

谢谢

viewstate silverlight wpf

5
推荐指数
1
解决办法
2590
查看次数

标签 统计

wpf ×3

.net ×1

listboxitem ×1

selection ×1

silverlight ×1

triggers ×1

viewstate ×1