Tag: 上下文

如何使entity framework数据上下文只读

我需要向第三方插件公开一个entity framework数据上下文。 目的是允许这些插件仅提取数据,而不是让他们发出插入,更新或删除或任何其他数据库修改命令。 因此,我怎样才能使数据上下文或实体只读。

使用SynchronizationContext将事件发送回WinForms或WPF的UI

我正在使用SynchronizationContext将事件封送到我的DLL中的UI线程,这个线程完成了大量的multithreading后台任务。 我知道singleton模式不是最喜欢的,但是我现在使用它来存储foo的父对象时UI的SynchronizationContext的引用。 public class Foo { public event EventHandler FooDoDoneEvent; public void DoFoo() { //stuff OnFooDoDone(); } private void OnFooDoDone() { if (FooDoDoneEvent != null) { if (TheUISync.Instance.UISync != SynchronizationContext.Current) { TheUISync.Instance.UISync.Post(delegate { OnFooDoDone(); }, null); } else { FooDoDoneEvent(this, new EventArgs()); } } } } 这在WPF中完全不起作用,TheUISync实例UI同步(源自主窗口的Feed)永远不会匹配当前的SynchronizationContext.Current。 在窗体中,当我做同样的事情时,他们会在调用之后匹配,然后我们会返回正确的线程。 我讨厌的修复,看起来像 public class Foo { public event […]

WPF数据绑定:我如何访问“父”数据上下文?

我有一个窗口中包含一个列表(见下文)。 窗口的DataContext有两个属性, Items和AllowItemCommand 。 如何获取Hyperlink的Command属性需要根据窗口的DataContextparsing的DataContext ? <ListView ItemsSource="{Binding Items}"> <ListView.View> <GridView> <GridViewColumn Header="Action"> <GridViewColumn.CellTemplate> <DataTemplate> <StackPanel> <TextBlock> <!– this binding is not working –> <Hyperlink Command="{Binding AllowItemCommand}" CommandParameter="{Binding .}"> <TextBlock Text="Allow" /> </Hyperlink> </TextBlock> </StackPanel> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> </ListView.View> </ListView>

元素名称从ContextMenu中的MenuItem绑定

有没有人注意到ElementName绑定不能正确parsingContextMenu对象中包含的MenuItem对象? 看看这个例子: <Window x:Class="EmptyWPF.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Width="300" x:Name="window"> <Grid x:Name="grid" Background="Wheat"> <Grid.ContextMenu> <ContextMenu x:Name="menu"> <MenuItem x:Name="menuItem" Header="Window" Tag="{Binding ElementName=window}" Click="MenuItem_Click"/> <MenuItem Header="Grid" Tag="{Binding ElementName=grid}" Click="MenuItem_Click"/> <MenuItem Header="Menu" Tag="{Binding ElementName=menu}" Click="MenuItem_Click"/> <MenuItem Header="Menu Item" Tag="{Binding ElementName=menuItem}" Click="MenuItem_Click"/> </ContextMenu> </Grid.ContextMenu> <Button Content="Menu" HorizontalAlignment="Center" VerticalAlignment="Center" Click="MenuItem_Click" Tag="{Binding ElementName=menu}"/> <Menu HorizontalAlignment="Center" VerticalAlignment="Bottom"> <MenuItem x:Name="anotherMenuItem" Header="Window" Tag="{Binding ElementName=window}" […]