我有一个WPF DataGrid,我想添加一个ContextMenu使用MVVM.这DataGrid是一个UserControl(我删除了一堆我不认为与问题的本质有关的东西):
<UserControl x:Class="Legend.MarkerMultiStatisticsControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:legend="clr-namespace:Legend"
Name="Self"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<GroupBox Header="{Binding ElementName=Self, Path=StaisticsData.Title}">
<DockPanel>
<DataGrid
DataContext="{Binding ElementName=Self}"
ItemsSource="{Binding ElementName=Self, Path=StaisticsData.Statistics}"
SelectionMode="Single"
CurrentCell="{Binding ElementName=Self, Path=CurrentCell, Mode=OneWayToSource}">
<DataGrid.ContextMenu>
<ContextMenu DataContext="{Binding RelativeSource={RelativeSource Mode=Self}, Path=PlacementTarget.DataContext}"
ItemsSource="{Binding Path=Commands}">
<ContextMenu.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Header" Value="{Binding Header}"></Setter>
<Setter Property="Command" Value="{Binding Command, diag:PresentationTraceSources.TraceLevel=High}"></Setter>
<Setter Property="CommandParameter" Value="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=DataGrid}, Path=DataContext.CurrentLegendCell}"></Setter>
</Style>
</ContextMenu.ItemContainerStyle>
</ContextMenu>
</DataGrid.ContextMenu>
</DataGrid>
</DockPanel>
</GroupBox>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
这种控制有一个DependencyProperty叫Command到我绑定菜单的ItemsSource和它的类型是ObservableCollection<LegendCommand>与 …
我想将我的 IAR Embedded Workbench 工作区分成几个项目。目前,我们在与主应用程序相同的项目中拥有操作系统和其他代码,但我希望操作系统和其他外部代码是我的应用程序所依赖的静态库。
我知道如何创建静态库项目以及如何添加 is 作为我的可执行文件的依赖项,但我的问题在于编译过程。IAR 似乎不明白它必须在可执行文件之前编译库。当库不存在时,我收到一条错误消息,指出文件丢失,但当库之前编译过一次但内部的某些文件发生更改时,情况会更糟。然后可执行文件编译没有任何错误,但它使用的是 OLD 库!
是否可以让 IAR 在更改时自行构建静态库?当我有几个静态库和更多依赖项时呢?
我有一个使用预构建事件的想法,但我想知道对于这种情况是否有任何开箱即用的方法,如果没有,最好的解决方案是什么。
我们目前使用的是 IAR 6,但可能很快就会升级到 7。
我正在编写一个用于在数据库中读取/写入结构的测试,并且其中的一个字段是在数据库中自动计算的时间戳。因此,当我编写该结构时,它的时间戳是0,但是当我从数据库中读取时,它的时间戳是一个实际值。
我想比较两个值,但忽略自动计算的字段。可能吗?
我正在使用 golang 和 gorm 与 MySQL 数据库交谈。
我有一个包含发布元数据的表:
type OSType string
const (
Windows OSType = "windows"
Mac OSType = "mac"
)
type AgentMetadata struct {
Version string `gorm:"primary_key"`
OS OSType `gorm:"primary_key" sql:"type:ENUM('windows','mac')"`
Name string `sql:"not null"`
Description string `sql:"not null"`
ReleaseNotesUrl string `sql:"not null"`
UpdateTime time.Time `sql:"DEFAULT:current_timestamp"`
}
Run Code Online (Sandbox Code Playgroud)
版本由组合键标识 - 操作系统和版本(编号)。
我有另一个表,它定义了客户端应该下载的默认版本(通过操作系统):
type GlobalDefault struct {
OS OSType `gorm:"primary_key" sql:"type:ENUM('windows','mac')"`
Version string
AgentMetadata AgentMetadata
UpdateTime time.Time `sql:"DEFAULT:current_timestamp"`
}
Run Code Online (Sandbox Code Playgroud)
我想要的是定义从 GlobalDefault 到 AgentMetadata(OS 和版本对)的两个外键,我希望能够通过其键 OS 查询 GlobalDefault 表并取回已经包含完整 AgentMetadata 的数据结构。 …
一方面,对象的标题说Array(2),但另一方面,当扩展对象时,显然阵列只有一个元素.
这种差异的根源是什么?这是调试器中的错误还是数组中真的有一个额外的元素(可能是未定义的?)由于某种原因不可见?
我有一个VS 2010解决方案,我在x64 Windows Server 2008 R2机器上以调试模式构建.编译会在.exe旁边生成一个.pdb文件.当我运行附带调试器的项目时,我收到以下错误消息:
"无法找到或不匹配调试信息.通过包含/排除设置禁用加载."
此时我无法在代码中插入断点.但是,当我手动加载符号(使用模块窗口)时,它们被正确加载,我可以再次插入断点.我尝试从存储库重建,清理和重新克隆我的代码.什么都没有帮助..pdb显然存在并匹配.为什么VS不能马上加载它们?
我在 go 中有一个测试包,它测试一些依赖于读取配置的东西。我想在运行所有测试之前读取一次该配置,所以我尝试使用TestMain(m *testing.M):
main.go:
package tests
import (
...
)
var logger = logging.MustGetLogger("tests")
func TestMain(m *testing.M) {
logger.Info("Initializing test suite")
viper.SetConfigName("config")
viper.AddConfigPath("..\\..\\")
err := viper.ReadInConfig()
if err == nil {
os.Exit(m.Run())
} else {
logger.Fatal("Could not read configuration")
}
}
Run Code Online (Sandbox Code Playgroud)
我在同一个目录(和包)中有另一个文件进行测试。
repository_test.go:
package tests
import (
...
)
func TestCreation(t *testing.T) {
aa := myModule.CreateRepository()
assert.NotNil(t, aa)
}
Run Code Online (Sandbox Code Playgroud)
我的问题是测试失败,因为没有从文件中读取配置。当我尝试在 Gogland 中调试测试时,TestMain未命中内部断点。当我从命令行运行测试时,我没有看到任何来自TestMain.
有什么特别的我应该做才能让它发挥作用吗?从我在线阅读的内容中我了解到,如果我定义了TestMain(m *testing.M)它,那么它只会为包运行一次,这就是我应该编写任何安装或拆卸代码的地方。
go ×3
debugging ×1
go-gorm ×1
goland ×1
iar ×1
javascript ×1
mvvm ×1
mvvm-light ×1
mysql ×1
orm ×1
unit-testing ×1
wpf ×1
wpfdatagrid ×1