任何人都可以帮我解决如何启用树视图滚动?必须有一个简单的方法,但我不能使它在我的代码中工作.多次尝试失败后,我目前有这样的事情:
<ScrollViewer CanContentScroll="True">
<TreeView ...>
</TreeView>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
我确实看到了"禁用"滚动条,但是当树视图的音符大于屏幕高度时,不会激活滚动.
我们遇到了将Web应用程序部署到另一个环境的小问题.我们使用Entity Framework Code First方法创建了应用程序的数据库(db自动从模型创建).在此开发环境中,我们使用集成安全性,并在dbo用户下创建表.这些表就像
[dbo].[myTable]
对于我们的其他环境,我们使用DB的用户名/密码身份验证.我们编写了表格并在数据库上创建了它们.所以他们现在的名字就像
[myDbUser].[myTable]
运行应用程序时,我们总会遇到问题
无效的对象名称'dbo.myTable'.
似乎代码仍然试图寻找一个不存在的dbo表,因此失败了.
任何人都可以解释这个问题吗?Entity Framework从哪里获取此dbo前缀?
谢谢
我已经修改了我的问题,因为它在尝试时已经改变了焦点.我把问题缩小到以下......
我尝试将TreeView的选定项绑定到StackPanel(或其他一些可以容纳用户控件的容器).然后,此容器将显示UserControl,具体取决于所选项目的类型.
这是StackPanel的xaml(树视图和stackpanel都在同一个窗口中==>不同的网格列)
<StackPanel Grid.Column="2" MinWidth="500" DataContext="{Binding ElementName=myTree, Path=SelectedItem, Mode=OneWay}">
<StackPanel.Resources>
<DataTemplate DataType="{x:Type mvTypes:MyTypeA}">
<controls:UserControlA DataContext="{Binding}" />
</DataTemplate>
<DataTemplate DataType="{x:Type mvTypes:MyTypeB}">
<controls:UserControlB DataContext="{Binding}" />
</DataTemplate>
</StackPanel.Resources>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
当我将用户控件直接放在stackpanel下(而不是在资源中)时,它会将所选对象显示为datacontext.同上,如果我在其中放置一个TextBox,它将显示所选项目的正确类型.
<TextBox Name="textBox1" Text="{Binding}" />
Run Code Online (Sandbox Code Playgroud)
出于某种原因,将其放在DataTemplate中(即使不设置DataType)也不会显示任何内容.
任何sugestions.我想也许StackPanel可能不适合这个,虽然我似乎找不到其他适合像这样的容器的控件.
提前致谢.
在我的 Angular 测试中模拟依赖项时,我通常使用jasmine.createSpyObj以下命令创建一个间谍对象:
const serviceSpy= jasmine.createSpyObj('MyService', ['method']);
Run Code Online (Sandbox Code Playgroud)
然后将其提供给 TestBed:
providers: [
{provide: MyService, useValue: serviceSpy}
]
Run Code Online (Sandbox Code Playgroud)
当我在测试中使用它时,我可以指定所需的返回值:
serviceSpy.method.and.returnValue(of([...]));
Run Code Online (Sandbox Code Playgroud)
现在我还需要模拟属性,但我不知道应该如何完成。createSpyObj确实允许定义属性名称:
const serviceSpy= jasmine.createSpyObj('MyService', ['method'], ['property']);
Run Code Online (Sandbox Code Playgroud)
但我已经尝试了基于大量文章和答案的各种解决方案,但没有任何成功,例如:
// Cannot read property 'and' of undefined
serviceSpy.property.and.returnValue(true);
// not declared configurable
spyOnProperty(serviceSpy, 'property').and.returnValue(true);
// no build errors, but value stays 'undefined'
serviceSpy.property = true;
Run Code Online (Sandbox Code Playgroud)
我可以让它“一半”工作的唯一方法是:
let fakeValue = true;
const serviceSpy= jasmine.createSpyObj('MyService', ['method'], {'property': fakeValue});
Run Code Online (Sandbox Code Playgroud)
这里的问题是它在创建时是一次性的。如果我想改变测试中的期望值,它不起作用。
fakeValue = false;
serviceSpy.property ==> stays to the initial value 'true';
Run Code Online (Sandbox Code Playgroud)
是否存在通过创建 spy 对象来解决模拟方法和属性的解决方案,或者我应该创建我自己的假类,然后在其上使用 …
我需要通过ADO.NET创建一个临时表,BulkCopy然后Merge在服务器上的临时表和实际表之间执行一个。
问题是使用纯ADO.NET动态创建临时表。模式应该与现有表相同,但是该表是使用ORM(NHibernate或Entity Framework,我们不确定)创建的。这也意味着该架构将来可能会更改。
有什么方法可以使用普通的ADO.NET对象在数据库中创建表?如一个DataTable包含原始表的架构?
任何指向我正确方向的信息都将受到赞赏。
我正在寻找MSBuild.Extensionpack.Compression.Zip添加自定义构建步骤,我想将一些文件添加到现有的.zip存档中.
<ItemGroup>
<Files Include="$(MSBuildProjectDirectory)\SomeFolder\AnotherFolder\*.xml">
</Files>
</ItemGroup>
<Message Text="@(Files)"></Message>
<MSBuild.ExtensionPack.Compression.Zip TaskAction="AddFiles"
CompressFiles="@(Files)" ZipFileName="$(MyZipArchive)"/>
Run Code Online (Sandbox Code Playgroud)
运行此文件时,文件确实已添加到zip存档中,但不会添加到根目录中.相反,它会创建一个与我的项目路径相对应的文件层次结构
Projects/MyProject/SomeFolder/AnotherFolder/myfile.xml
Run Code Online (Sandbox Code Playgroud)
有关如何获取myfile.xml.zip存档根目录的任何想法?
wpf ×2
ado.net ×1
data-binding ×1
datatemplate ×1
db-schema ×1
jasmine ×1
javascript ×1
msbuild ×1
scroll ×1
sqlbulkcopy ×1
treeview ×1