小编She*_*dan的帖子

无法更新标识列'LocationID'

我正在尝试更新ID值.因此,如果ID为1,则新值为2,则应使用新值替换旧ID.

后端:

     public static void UpdateLocation( int locationID, SqlConnection connection,                SqlTransaction transaction )
    {
        StringBuilder sqlString = new StringBuilder();
        SqlCommand command;

        sqlString.Append( "UPDATE [Location] SET " );
        sqlString.Append( "description = @description " );
        sqlString.Append( "WHERE locationID = @locationID " );
        command = new SqlCommand( sqlString.ToString(), connection );
        if( ( transaction != null ) ) command.Transaction = transaction;

        command.Parameters.Add( "@locationID", SqlDbType.Int ).Value = locationID;
       command.Parameters.Add( "@description", SqlDbType.VarChar ).Value = description;
        int rowsAffected = command.ExecuteNonQuery();

        if( !( rowsAffected == 1 ) ) …
Run Code Online (Sandbox Code Playgroud)

.net c# sql

3
推荐指数
1
解决办法
7171
查看次数

在datagrid中添加上下文菜单,如何获取select Item值

我是MVVM模式的WPF编程新手.现在我在datagrid中添加了上下文菜单.但是,当我单击鼠标右键时,我不知道如何获取选择的行值.这是我的xmal

 <DataGrid  AutoGenerateColumns="False" Grid.Row="1" CanUserAddRows="False" CanUserDeleteRows="False"
              ItemsSource="{Binding StoryList}">
        <DataGrid.Columns>
        <DataGridTextColumn Header="ID" Binding="{Binding ID}" Width="40" IsReadOnly="True" />
        <DataGridTextColumn Header="Title" Binding="{Binding Title}" Width="60" IsReadOnly="True"/>
        <DataGridTextColumn Header="StoryPoints" Binding="{Binding StoryPoints}" Width="90" IsReadOnly="True">
                <DataGridTextColumn.CellStyle>
                    <Style TargetType="DataGridCell">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding StoryPoints}" Value="0">
                                <Setter Property="Background" Value="Red"/>
                                <Setter Property="ToolTip" Value="Story Point cannot be 0."/>
                            </DataTrigger>                                
                        </Style.Triggers>
                    </Style>
                </DataGridTextColumn.CellStyle>
            </DataGridTextColumn>
            <DataGridTextColumn Header="Stack Rank" Binding="{Binding StackRank}" Width="80"/>
            <DataGridTextColumn Header="Estimate" Binding="{Binding Estimate}" Width="60"/>
            <DataGridTextColumn Header="CompletedWork" Binding="{Binding CompletedWork}" Width="120" />
            <DataGridTextColumn Header="RemainWork" Binding="{Binding RemainWork}" Width="110" />
            <DataGridTextColumn Header="CompleteProcess" Binding="{Binding CompletedProcess}" Width="110" /> …
Run Code Online (Sandbox Code Playgroud)

c# wpf datagrid mvvm

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

为什么我要继续获取"必须为本地项目中不属于项目的XAML文件指定程序集"?

首先,我想强调一下,我确实知道如何在我的XAML文件中正确定义XML命名空间.这个重复的错误不是由我的代码中的错误引起的.问题并不能阻止我的项目成功构建,或者运行并且提到的Converter类完美地工作.

当我构建项目时,错误消失了.但是,设计人员会显示熟悉的错误消息:

在此输入图像描述

当我点击"重新加载设计器"链接时,错误将返回.这个问题最糟糕的部分是我在这些视图上丢失了所有Intellisense.

错误突出显示了这些命名空间:

在此输入图像描述

但是您可以清楚地看到它们已被正确声明:

在此输入图像描述

我确信之前已经找到了解决这个问题的方法,但是在刚刚进行了广泛的搜索之后,我只能找到与此错误相关的一百万个帖子,其中用户实际上已经犯了错误.另请注意,这是一个全新的WPF应用程序,不能从互联网或网络驱动器下载.

wpf xaml xml-namespaces

3
推荐指数
1
解决办法
890
查看次数

WPF用户控件数据绑定不起作用

我正在创建一个简单的用户控件,将弹出窗口与文本视图相结合,没什么了不起的.当我首先在窗口中设置它以将其全部设置出来时,它完美地工作,但当我将其移动到用户控件中以实际完成它时,它将无法正常工作.

我将最小值和最大值传递给控件,​​然后它会自动创建一个从该范围中选择的数字列表.在用户控件中,数字列表没有正确绑定,谁知道原因.也许有人可以看看我的代码.

我已经阅读了很多关于此问题的其他问题,但我们并不知道发生了什么.我的输出窗口没有出现任何错误,所以没有线索.无论如何,这是代码 -

UserControl.xaml

<UserControl x:Class="UserControl1"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         x:Name="Me"
         DataContext="{Binding RelativeSource={RelativeSource Self}}">

<StackPanel>
    <TextBox Name="myTextbox"
             Height="30"
             Margin="0"
             FontSize="14"
             IsReadOnly="True"
             Padding="5,2"
             Text="{Binding Value}" />
    <Popup x:Name="myPopup"
           PlacementTarget="{Binding ElementName=myTextbox}"
           StaysOpen="True">
        <Popup.Style>
            <Style TargetType="{x:Type Popup}">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding ElementName=myTextbox, Path=IsFocused}" Value="True">
                        <Setter Property="IsOpen" Value="True" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Popup.Style>

        <StackPanel>
            <ListView Name="myListView"
                      Height="100"
                      MaxHeight="300"
                      ItemsSource="{Binding List,
                                            UpdateSourceTrigger=PropertyChanged}"
                      SelectionChanged="ListView_SelectionChanged">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <Label Width="100"
                               Height="30"
                               Margin="0"
                               Content="{Binding}"
                               FontFamily="Segoe UI"
                               FontSize="14"
                               Padding="5,2" />
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
            <Button Width="200" Height="30" />
        </StackPanel>
    </Popup>

</StackPanel>
Run Code Online (Sandbox Code Playgroud)

UserControl.xaml.vb

Imports …
Run Code Online (Sandbox Code Playgroud)

vb.net data-binding wpf user-controls wpf-controls

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

方法未找到Caliburn Micro(DataContext问题?)

我有一个UserControl(MainView),其上有一个视图框,用于显示另一个UserControl(MidView),在UserControl中,我有一个显示另一个UserControl(BottomView)的画布.在孙子UserControl(BottomView)上我有一个ListBox,我希望能够右键单击并调用特定方法.

我有

cal:Message.Attach="[Event MouseRightButtonDown] = [Action Method1]"
Run Code Online (Sandbox Code Playgroud)

在ListBox上,但每当我右键单击该框时,它会检查祖父母ViewModel(MainViewModel)的"Method1".我想我必须使用cal:Action.TargetWithoutContext让它在BottomViewModel中查看,但我无法弄清楚如何使用它.

我想

cal:Action.TargetWithoutContext="{Binding MainView}"
Run Code Online (Sandbox Code Playgroud)

要么

cal:Action.TargetWithoutContext="{Binding MainViewModel}"
Run Code Online (Sandbox Code Playgroud)

会解决我的问题,但没有运气.我出错的任何想法?

c# wpf xaml caliburn.micro

3
推荐指数
1
解决办法
1702
查看次数

如何在Visual Studio中的WPF Python项目中手动创建App.xaml文件?

当我们从Visual Studio创建一个新的 WPF C#项目时,我们得到4个基本文件 "App.xaml","App.cs","MainWindow.xaml","MainWindow.cs"

这里的App.xaml文件基本上用于存储application related Resources在一个文件中,以便存在于整个应用程序中.

但是在Visual Studio中创建 WPF Python项目时, 我们只获得了2个文件 "MainWindow.xaml" and "MainWindow.py"

I want to create 2 more file in my Python project "App.xaml""App.py"这样"App.xaml"我就可以轻松定义我所有与应用程序相关的资源样式和控件模板.

Plz帮助!!

c# wpf ironpython ironpython-studio visual-studio-2012

3
推荐指数
1
解决办法
7539
查看次数

为什么Type.IsAssignableFrom方法在这里返回false?

我使用.NET反射遇到了一个奇怪的问题.如果您知道为什么会这样,请告诉我.

要求:

我需要在实现特定接口的特定命名空间中生成每个类的实例集合.

原始解决方案

List<IReport> allReportTypes = Assembly.GetExecutingAssembly().GetTypes().Where(
    t => !t.IsAbstract && t.IsClass && t.IsAssignableFrom(typeof(IReport)) && t.Namespace
    == @namespace).Select(t => Activator.CreateInstance(t) as IReport).ToList();
Run Code Online (Sandbox Code Playgroud)

这个原始的解决方案什么都没有,我的问题是为什 每个类都正确实现了IReport接口,并已在相关的命名空间中声明.通过删除以下呼叫证明了这一点IsAssignableFrom:

List<IReport> allReportTypes = Assembly.GetExecutingAssembly().GetTypes().Where(
    t => !t.IsAbstract && t.IsClass && t.Namespace == @namespace).Select(t => 
    Activator.CreateInstance(t) as IReport).ToList();
Run Code Online (Sandbox Code Playgroud)

这将返回我想要的类的实例,但不检查所需的接口.请注意,该Activator.CreateInstance方法的结果已成功转换为IReport接口,因此返回的类肯定会实现它.我继续解决这个问题,并设法在以下查询中找到满足我所有要求的解决方法.

工作方案

List<IReport> allReportTypes = Assembly.GetExecutingAssembly().GetTypes().Where(
    t => !t.IsAbstract && t.IsClass && ((TypeInfo)(t)).ImplementedInterfaces.Contains(
    typeof(IReport)) && t.Namespace == @namespace).Select(t => Activator.CreateInstance(t)
    as IReport).ToList();
Run Code Online (Sandbox Code Playgroud)

但是,我想知道为什么这个IsAssignableFrom方法没有按照它所说的那样......或者在MSDN中.(我还尝试了另一个关于Stack Overflow相关问题的解决方案,但没有成功,所以请不要建议我遵循它们).

c# reflection interface

3
推荐指数
1
解决办法
150
查看次数

更新没有ListBox.Items.Refresh()的WPF ListBoxItem?

我有一个DataTemplate用来显示一个类的详细信息ListBox.在DataTemplate具有EventTrigger附接至该项目的Loaded一个使用事件DoubleAnimation的每个项目淡入视图,因为它们将被添加到ObservableCollection绑定到ListBox.它还有一个DataTrigger使用a DoubleAnimation和a ColorAnimation(RepeatBehavior="Forever")在特定条件下为发光效果设置动画.到现在为止还挺好.

该应用程序要求每隔几秒更新一次项属性.ListBox在调用时更新项目的属性后出现问题ListBox.Items.Refresh().这将重置动画,以便每个项目淡入视图,并且每隔几秒钟重新开始发光效果.如果我不调用,则item属性值不会更新Refresh.我的问题是,有没有办法单独刷新每个项目或以某种方式解决这个问题?

wpf listbox refresh listboxitem

2
推荐指数
1
解决办法
6680
查看次数

如何在WPF TreeViewItem中进行文本换行?

这一次,我的问题就像听起来一样简单......你如何在WPF中包含文本TreeViewItem

我有一个简单HierarchicalDataTemplate的只有一个TextBlock.

<TextBlock Text="{Binding Value}" TextWrapping="Wrap" />
Run Code Online (Sandbox Code Playgroud)

文字没有包装.

我想结合WidthTextBlockActualWidthTreeView,不过虽然这使得文字的环绕中,WidthTreeViewItem不适合的TreeView,因为TreeViewPadding.绑定到ActualWidthTreeViewItem有(意料之中)相同的效果.另一个缺点是,即使是文字很少的项目也会超出TreeView界限.

<TextBlock Text="{Binding Value}" TextWrapping="Wrap" Width="{Binding ActualWidth, 
ElementName=TreeView}" />
Run Code Online (Sandbox Code Playgroud)

当然,必须有一个更好的办法,像不知何故通知TreeViewItemTreeView的界限......我不能相信它不会自动知道.但是我怎么能这样做呢?

更新>>>

由于HB的答案,我设法改变Grid.ColumnSpan为2对Bd Border,他在提到ControlTemplate它设置宽度,使文本现在包装精美.问题是我在ControlTemplate其他TreeViewItems中使用它TreeView,我不想要全宽度的项目.

我想出的解决方案很简单.我已将TreeViewItem.Tag值绑定到Grid.ColumnSpan属性中,ControlTemplate因此:

<Border Grid.ColumnSpan="{Binding Tag, RelativeSource={RelativeSource TemplatedParent}}" 
Name="Bd" …
Run Code Online (Sandbox Code Playgroud)

wpf word-wrap treeviewitem

2
推荐指数
1
解决办法
4474
查看次数

AddIn(MAF):在单独的进程中运行

我有WPF主机应用程序,AddIn也是WPF,它返回UI,如下所述:

[链接] http://msdn.microsoft.com/en-us/library/bb909849%28v=vs.110%29.aspx

我想知道是否甚至可以激活WPF AddIn作为外部进程:看起来WPF加载项只被认为与AppDomain隔离一起使用,这对我们的应用程序来说还不够好.如果AddIn由于任何原因崩溃,我们不能让主机一直崩溃.即使加载了AddIn崩溃,我们也希望我们的主机应用程序能够运行.

我知道我们可以System.AddIn通过以下方式实现这一目标:

//Activate the selected AddInToken in a new 
//application domain with the Internet trust level.
Calculator CalcAddIn = selectedToken.Activate<Calculator>(new AddInProcess(), AddInSecurityLevel.fulltrust);
Run Code Online (Sandbox Code Playgroud)

但我有WPF AddIns不是System.AddIn因为我们的AddIns有WPF UI组件.

我可以在新的应用程序域中激活WPFAddIn,如下所示:

//Activate the selected AddInToken in a new 
//application domain with the Internet trust level.
Calculator CalcAddIn = selectedToken.Activate<Calculator>(AddInSecurityLevel.Internet);
Run Code Online (Sandbox Code Playgroud)

我无法获得有关使用WPF AddIns处理此情况的任何最新信息.是否有任何可能的示例如何在单独的进程中激活WPF AddIn或在主机中捕获未处理的异常.基本上我不能允许主机在addIn崩溃时死掉.我确实按照以下链接,但结果是线程很老,没有最新信息.

[链接] http://social.msdn.microsoft.com/Forums/vstudio/en-US/3c8592f2-14a6-418b-ab11-6d18096aaa0c/systemaddin-addinprocess-and-wpf?forum=wpf

如果我可以在主机中处理异常也会很好.让我解释一下我的问题:

我有WPF主机"A".有WPF AddIn"B".

我在主机"A"中加载了AddIn"B".AddIn"B"有一个单击按钮.当用户单击按钮时,将在AddIn"B"中触发事件.在那种情况下,没有尝试捕获可用,并且从该事件抛出一些null异常.这个未处理的异常导致我的主机(WPF应用程序)崩溃.

我正在寻找一个解决方案,我可以在主机"A"中处理此异常,卸载AddIn"B"并继续Host而不会发生任何崩溃.

我曾尝试与加载宏AddInSecurityLevel.FullTrust,以及 AddInSecurityLevel.Internet.

任何提示或示例都会有所帮助.

c# wpf system.addin maf

2
推荐指数
1
解决办法
2933
查看次数