- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个绑定(bind)到可观察集合的数据网格。我想让按钮上的鼠标输入事件显示从数据库中检索到的一些内容。
为了提高效率,我想在鼠标悬停时获取这些数据,因此初始渲染速度更快。
我已将鼠标进入和鼠标离开事件绑定(bind)到 ViewModel 中的 ICommand。这些控制台正确记录了鼠标输入、鼠标离开行 ID(为简洁起见,省略了鼠标离开)
如果我手动输入 isOpen="true"所有弹出框都按预期显示。
我遇到的问题是,如果我在命令委托(delegate)中改变 Observable 集合,它不会更新内容的数据网格。 Observable 集合在调试器中似乎是正确的。
//Conditions.cs
public class Condition
{
public int Id { get; set; }
public string Description { get; set; }
public bool PopupOpen { get; set; }
public string PopupContent { get; set; }
…
}
private ObservableCollection<Condition> _conditionsObservableCollection;
public ObservableCollection<Condition> ConditionsObservableCollection
{
get => _conditionsObservableCollection;
set
{
_conditionsObservableCollection = value;
DynamicOnPropertyChanged();
}
}
private ICommand _showConditionChildrenMouseEnterCommand;
public ICommand ShowConditionChildrenMouseEnterCommand=> _showConditionChildrenMouseEnterCommand ??
(_showConditionChildrenMouseEnterCommand = new RelayCommand<int>(ShowConditionChildren));
private void ShowConditionChildren(int id)
{
Console.WriteLine("enter:"+id); // this is output correctly.
foreach (Condition condition in ConditionsObservableCollection)
{
condition.PopupOpen = condition.Id == id;
}
//ConditionsObservableCollection appears to be changed here.
OnPropertyChanged("ConditionsObservableCollection");
}
public event PropertyChangedEventHandler PropertyChanged;
public void DynamicOnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
protected virtual void OnPropertyChanged(string propertyName)
{
var handler = PropertyChanged;
handler?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
<DataGridTemplateColumn Header="Info">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<Button Style="{StaticResource MaterialDesignFlatButton}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseEnter">
<i:InvokeCommandAction
CommandParameter="{Binding Path=Id}"
Command="{Binding Path=DataContext.ShowConditionChildrenMouseEnterCommand, RelativeSource={RelativeSource AncestorType=DataGrid}}"
/>
</i:EventTrigger>
<i:EventTrigger EventName="MouseLeave">
<i:InvokeCommandAction
CommandParameter="{Binding Path=Id}"
Command="{Binding Path=DataContext.HideConditionChildrenMouseLeaveCommand, RelativeSource={RelativeSource AncestorType=DataGrid}}"
/>
</i:EventTrigger>
</i:Interaction.Triggers>
<materialDesign:PackIcon Kind="InformationVariant"/>
</Button>
<Popup
HorizontalAlignment="Left"
VerticalAlignment="Bottom"
IsOpen="{Binding PopupOpen}">
<StackPanel Background="AntiqueWhite">
<TextBlock Padding="5">Here is a popup for id: <Run Text="{Binding Id}"/></TextBlock>
</StackPanel>
</Popup>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
最佳答案
public class Condition : INotifyPropertyChanged
{
public void SetPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public event PropertyChangedEventHandler PropertyChanged;
public int Id { get; set; }
public string Description { get; set; }
private bool popUpOpen;
public bool PopUpOpen
{
get { return popUpOpen; }
set
{
popUpOpen = value;
OnPropertyChanged("PopUpOpen");
}
}
public string PopupContent { get; set; }
…
}
关于c# - MVVM Binding popover isOpen in datagrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47410971/
使用找到的概念here on StackOverflow . 请注意 ToggleButton.IsHitTestVisible绑定(bind)到 Popup.IsOpen , 与 StaysOpen
我使用 Python 3.6.5 和 OpenCV 3.4.1 阅读了一个 mp4 视频,并对每一帧进行了一些(资源密集型)计算。 当然,我有帧总数 (length) 和当前帧数 (count),所以
在 C++ 中,有没有一种方法可以检查文件描述符在最初打开很久之后是否仍然打开? 最佳答案 您可以使用 fcntl with the F_GETFL获取 fd 是否有效。 关于c++文件描述符(套接字
本文整理了Java中am.widget.zxingscanview.ZxingScanView.isOpen()方法的一些代码示例,展示了ZxingScanView.isOpen()的具体用法。这些代
当物理断开 USB 端口上的串行电缆时,C# SerialPort.IsOpen 返回 true。任何人都可以帮助我如何克服这一点。 最佳答案 串行端口不是这样工作的,它们没有像 TCP 这样的标准连
我尝试使用: if (!db.isOpen()) { db.open(); } 检查我的数据库连接,但它不会重新连接到我的数据库...:( 我的连接会在打开程序后随机断开(20-30 秒?)。但是
所以我得到这个错误:game.cpp(15): error C3867: 'sf::Window::isOpen': non-standard syntax;使用“&”创建指向成员的指针 游戏.cpp
有没有isOpen 的属性(或类似属性) angular-material 中的指令那一个可以听或绑定(bind)? 注意:我最初的问题更长且过于复杂,但是 @Sarhanis让我意识到我问错了问题
我有一个绑定(bind)到可观察集合的数据网格。我想让按钮上的鼠标输入事件显示从数据库中检索到的一些内容。 为了提高效率,我想在鼠标悬停时获取这些数据,因此初始渲染速度更快。 我已将鼠标进入和鼠标离开
我也在使用 Java OpenJdk 14.0.2 和 OpenCV-440,而一切都在 Windows 10 上运行。我的 JavaFX 应用程序应该捕获网络摄像头(或任何其他视频设备)的帧并将帧存
我正在使用 Spring 3.1 开发 Hibernate4 示例。 在我的示例中,当我打印 sessionFactory.getCurrentSession().isOpen() 时在控制台上打印
这是我正在尝试做的事情:
我使用我的代码如下。如果对话框已经打开,函数 get_devcies_full 将被调用 5 次 不要再次打开它,只需更新内容 然后我将在下面编写代码,我在 javascript 中遇到了错误 can
在 tomcat 8 服务器上部署时,出现以下错误 AssertionFailure: Transaction MARKED_FOR_JOINED after isOpen() call 配置详情如下
我在我的一款 iOS 游戏中实现了整个 iOS Facebook 登录过程。在应用程序中,您可以使用电子邮件帐户或通过 Facebook 登录。我偶尔会呈现一个 View ,邀请用户在使用电子邮件登录
本文整理了Java中org.apache.tomcat.websocket.WsSession.isOpen()方法的一些代码示例,展示了WsSession.isOpen()的具体用法。这些代码示例主
本文整理了Java中com.koolearn.android.kooreader.ZLTreeAdapter.isOpen()方法的一些代码示例,展示了ZLTreeAdapter.isOpen()的具
下午好,我修改了group header slot来自定义group row,只是我想默认设置值isOpen = false,我找不到办法做到这一点,我很感激你的帮助。
我想在 angualr ui 引导 Accordion 指令中使用 isOpen 属性,这样它将打开 Accordion 中第一个 ng-repeat 的第一个元素。我尝试了一些没有运气的事情。有人可
尝试运行 ember 中内置的 Web 应用程序时出现此错误: Template Compiler Error (broccoli-persistent-filter:TemplateCompiler
我是一名优秀的程序员,十分优秀!