小编Kia*_*eng的帖子

将信息从一个视图模型传递到另一个模型

替代文字

我正在使用MV-VM架构模式.

我想我的程序有两种观点,视图A视图B.我用View A启动程序.视图B是由程序时,我双击在项所示.

我应该如何构建我的程序,以便我可以实现这一目标?

c# wpf mvvm

5
推荐指数
1
解决办法
364
查看次数

即使实现了INotifyProperty接口,ObservableCollection也不会刷新

我有一个ObservableCollection绑定到列表框

public ObservableCollection<InsertionVM> Insertions
{
    get
    {
        return _insertions;
    }
    set
    {
        _insertions = value;
        base.OnPropertyChanged("ChromosomeList");
    }
}
Run Code Online (Sandbox Code Playgroud)

它的成员InsertionVM实现INotifyPropertyChanged。它具有将被更新的属性。

public bool IsChecked
{
    get
    {
        return _isChecked;
    }
    set 
    {
        _isChecked = value;
        base.OnPropertyChanged("IsChecked");
    }
}
Run Code Online (Sandbox Code Playgroud)

即使为每个属性实现INotifyPropertyChanged接口,为什么ObservableCollection也不会刷新?


更新:

我尝试了下面给出的链接,但是“更敏感的集合”仅在删除/添加对象时才更新。

if (e.Action == NotifyCollectionChangedAction.Remove)
{
    foreach (InsertionVM item in e.NewItems)
    {
        //Removed items
        item.PropertyChanged -= EntityViewModelPropertyChanged;
    }
}
else if (e.Action == NotifyCollectionChangedAction.Add)
{
    foreach (InsertionVM item in e.NewItems)
    {
        //Added items
        item.PropertyChanged += EntityViewModelPropertyChanged;
    }
} …
Run Code Online (Sandbox Code Playgroud)

c# data-binding wpf

5
推荐指数
1
解决办法
6563
查看次数

从集合中访问MVVM父视图模型

替代文字

上图说明了我的计划.箭头表示Binding.

我的MainWindow.xaml将其datacontext设置为MainVM.

窗口有绑定到一个选项卡控件ObservableCollectionViewModel秒.使用数据模板,选项卡控件显示与其对应的视图ViewModel.

ObservableCollection被发现的MainVM.

如何访问MainVMfrom中找到的属性ViewModel(包含在ObservableCollection中)?

我愿意接受需要修改我的编程模型的答案.

.net c# wpf mvvm

5
推荐指数
1
解决办法
6193
查看次数

匹配ApplicationIcon.jpg强调色

这是一个简单的问题,但我似乎无法找到明确的答案.

如何设置我的应用程序图标(菜单中显示的图标)

在此输入图像描述

一个与强调色相匹配的?目前唯一的方法是覆盖ApplicationIcon.jpg,但jpgs没有透明度

编辑:

这就是我以前的工作方式.复制.png文件,然后将其重命名为.jpg.它必须是完全相同的名称,否则您将收到错误2 xap打包失败.

windows-phone-7

5
推荐指数
1
解决办法
606
查看次数

命令输入绑定有效但快捷方式不在MenuItem中显示

题:

我正在使用Josh Smith 使用路由命令实现 MVVM命令.我有一个MenuItem绑定命令.

输入绑定在父窗口中定义.当我运行程序时,我可以使用键盘快捷键,但MenuItem不会显示标题Control+O旁边的MenuItem.

图片:

Ctrl + O在哪里?

码:

命令绑定:

 <Window.CommandBindings>
    <cmd:CommandSinkBinding Command="vm:MainVM.OpenDialogCommand" />
</Window.CommandBindings>

<Window.InputBindings>
    <KeyBinding Command="vm:MainVM.OpenDialogCommand" Key="O" Modifiers="Ctrl"/>
</Window.InputBindings>
Run Code Online (Sandbox Code Playgroud)

菜单项:

<MenuItem Header="Open" Command="vm:MainVM.OpenDialogCommand" />
Run Code Online (Sandbox Code Playgroud)

注意: MenuItem是样式化的,但删除样式并没有什么区别.

c# wpf command mvvm

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

访问者的可访问性错误

我的程序中有以下代码行

public Chromosome NewChromosome { get; public set; }
Run Code Online (Sandbox Code Playgroud)

这给出了以下错误:

错误1

'ARP_TLL.DataAccess.ChromosomeAddedEventArgs.NewChromosome.set'访问者的可访问性修饰符必须比属性或索引器更具限制性'ARP_TLL.DataAccess.ChromosomeAddedEventArgs.NewChromosome'

C:\Users\kiangtengl\Programming\Projects\ARP_TLL\ARP_TLL\DataAccess\ChromosomeAddedEventArgs.cs

16
55
ARP_TLL

我已经尝试修改访问者和属性的可访问性修饰符,但我无法解决问题.

作为参考,这是类型 Chromosome

public class Chromosome
{
    #region properties

    public int Length
    {
        get;
        set;
    }

    public int Number
    {
        get;
        set;
    }

    #endregion

    #region creation

    public static Chromosome CreateChromosome(int _length, int _number)
    {
        return new Chromosome
        {
            Length = _length, Number = _number, 
        };
    }
    #endregion
}
Run Code Online (Sandbox Code Playgroud)

c#

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

删除列表框项目虚线边框

我有一个定制风格ListBoxItemBorder周围的ContentPresenter.(代码见下文).我的边框充当我的选择指示器,当您选择它时会变为灰色.当我使用鼠标时一切都很好,但是当我使用键盘时,会出现一个丑陋的虚线灰色边框.我该如何删除它?

图片:

UGLY GRAY BORDER

您可以看到,当我鼠标悬停/单击时ListBoxItem,包含背景的边框环绕该项目.但是当我使用键盘时,会出现一个丑陋的虚线边框.

码:

<Style x:Key="{x:Type ListBoxItem}" TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ListBoxItem">
                <StackPanel>
                    <Border Name="HighlightBorder"  
                            Padding="30"
                            BorderBrush="Transparent"
                            BorderThickness="1"
                            CornerRadius="5"
                            >
                            <ContentPresenter/>
                    </Border>
                </StackPanel>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter TargetName="HighlightBorder" Property="Background" Value="#F3F3F3"/>
                    </Trigger>
                    <Trigger Property="IsSelected" Value="True">
                        <Setter TargetName="HighlightBorder" Property="Background" Value="#DFDFDF"/>
                    </Trigger>
                    <Trigger Property="IsKeyboardFocused" Value="True">
                        <Setter TargetName="HighlightBorder" Property="Background" Value="#DFDFDF"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
Run Code Online (Sandbox Code Playgroud)

c# wpf custom-controls wpf-controls

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

在WPF ListBox中禁用键盘导航

如何在不使用鼠标禁用选择的情况下禁用WPF ListBox中的键盘导航?

.net c# keyboard wpf listbox

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

在C#字符串中包含"\"

我正在尝试将字符串的值设置为包含在其中的字符串\,但不能这样做,因为他们说我有一个无法识别的转义序列.是否可以\用字符串写?

c#

0
推荐指数
1
解决办法
4982
查看次数

获取类的类型并实例化它的另一个实例

我有一个Number由类继承的基类One,TwoThree.

我有一个房产

public Number SomeNumber{get;set;}
Run Code Online (Sandbox Code Playgroud)

起初,我已SomeNumberOne,TwoThree(值会随机生成).

后来,我想设置SomeNumber一个与旧类相同类型的新类.这可能吗?如果是这样,怎么样?

例:

在初始化时,SomeNumber设置为One

稍后在程序中,我想设置SomeNumber一个新的实例One.

.net c# c#-4.0

0
推荐指数
1
解决办法
836
查看次数