相关疑难解决方法(0)

WPF中的MVVM - 如何提醒ViewModel模型中的更改...还是应该?

我正在阅读一些MVVM文章,主要是这个这个.

我的具体问题是:如何将模型更改从模型传递到ViewModel?

在Josh的文章中,我没有看到他这样做.ViewModel始终向Model询问属性.在Rachel的例子中,她确实拥有模型实现INotifyPropertyChanged,并从模型中引发事件,但它们是供视图本身使用的(有关她为什么这样做的详细信息,请参阅她的文章/代码).

我在任何地方都看不到模型警告ViewModel模型属性更改的示例.这让我担心,也许是因为某些原因没有做到的. 是否有一种模式用于警告ViewModel模型中的更改? 这似乎是必要的,因为(1)可以想象每个模型有超过1个ViewModel,(2)即使只有一个ViewModel,模型上的某些操作可能会导致其他属性被更改.

我怀疑可能会有"你为什么要这样做?"的答案/评论.评论,所以这里是我的程序的描述.我是MVVM的新手,所以也许我的整个设计都有问题.我将简要介绍一下.

我编写的东西比"客户"或"产品"类更有趣(至少对我而言!).我在编程BlackJack.

我有一个View,后面没有任何代码,只依赖于绑定到ViewModel中的属性和命令(参见Josh Smith的文章).

是好还是坏,我把该模型应该不仅包含类,如态度PlayingCard,Deck但也BlackJackGame认为保持整场比赛的状态,并且知道当玩家已经破产,经销商必须抓牌,阶级和玩家和经销商当前得分是多少(少于21,21,胸围等).

BlackJackGame我公开像"DrawCard"这样的方法,我发现在绘制卡片时CardScore,IsBust应该更新属性,例如和,并将这些新值传递给ViewModel.也许这是错误的思考?

人们可以采取ViewModel称之为DrawCard()方法的态度,因此他应该知道要求更新的分数并找出他是否破产.意见?

在我的ViewModel中,我有逻辑来获取扑克牌的实际图像(基于套装,等级)并使其可用于视图.该模型不应该与此有关(也许其他ViewModel只使用数字而不是扑克牌图像).当然,也许有些人会告诉我模型甚至不应该有BlackJack游戏的概念,而应该在ViewModel中处理?

.net c# wpf mvvm

105
推荐指数
4
解决办法
9万
查看次数

WPF - 将图像水平绑定到ListView

在这里看到一个类似的问题,但是在答案之后没有解决同样的问题.图像仍然垂直列出.我从NetFlix绑定了oData.

在此输入图像描述

以下是XAML: -

    <Window.Resources>
          <DataTemplate x:Key="ImageCell">
            <StackPanel Orientation="Horizontal">
                <Image Source="{Binding BoxArt.MediumUrl}" Width="200" Height="200" Stretch="Fill" ToolTip="{Binding Synopsis}"/>
            </StackPanel>
        </DataTemplate>
    </Window.Resources>

 <ListView Margin="21,40,26,9" Name="lvwTitles" ItemsSource="{Binding}" 
   IsSynchronizedWithCurrentItem="True" 
 SelectionMode="Single" ItemTemplate="{StaticResource ImageCell}">        
 </ListView>
Run Code Online (Sandbox Code Playgroud)

以下是背后的代码: -

List<Title> titles = serviceAccessor.GetAllTitlesByGenre(cmbGenre.SelectedValue.ToString());
lvwTitles.ItemsSource = titles;
Run Code Online (Sandbox Code Playgroud)

data-binding wpf listview

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

在WPF ListView中将项目显示为图像

所以我一个绑定ListListView,其中List有一个类型的项目Album,它有很多特性,包括.Cover,我是在磁盘上的图像.好吧,因为我不知道需要什么类型的图像以及如何加载它们(我只知道使用Winforms的图像类型),我还不知道它的类型.

有人可以展示或发布一个快速样本,其中显示这类项目使用其.Cover属性显示为某个固定大小的图像?

实质上,这将显示:

  1. .Cover应该是什么类型
  2. 如何从磁盘打开WPF图像(假设它与Winforms图像加载不同)
  3. 如何在ListView上将它们显示为特定固定大小的图像,必要时缩放图像

.net c# wpf listview image

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

标签 统计

wpf ×3

.net ×2

c# ×2

listview ×2

data-binding ×1

image ×1

mvvm ×1