gpt4 book ai didi

c# - (MVVM/WPF) 在 View 模型中操作 View 元素

转载 作者:行者123 更新时间:2023-12-03 11:03:42 25 4
gpt4 key购买 nike

我有一个 ListView 上面有一些我想像这样工作的图像:
enter image description here

我使用 命令 命令参数 发送 ListView 给我的查看-型号 然后操纵每个图像的宽度和高度:

<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding MVM.SelectedChangedCommand}" CommandParameter="{Binding ElementName=listView}"/>
</i:EventTrigger>
</i:Interaction.Triggers>

查看型号:
private void SelectedChangedAction(object param)    
{
ListView s = (ListView)param;

double j = 1;
for (int i = s.SelectedIndex - 1; i >= 0 && j >= 0; i--, j -= 0.15)
{
Pic t = (Pic)s.Items[i];
t.Width = 150 * j;
t.Height = 250 * j;
}


j = 1;
for (int i = s.SelectedIndex + 1; i < s.Items.Count && j >= 0; i++, j -= 0.15)
{
Pic t = (Pic)s.Items[i];
t.Width = 150 * j;
t.Height = 250 * j;
}
s.ScrollIntoView(s.Items[s.SelectedIndex]);
}

但正如我所说,您可以在 中看到查看-型号 , 我用 ListView 虚拟机 我认为这是违规行为!那么我怎样才能在 中做这样的事情呢? MVVM ?
(当然,我认为我可以构建一个基于 ListView 的新 Controller ,虽然我需要一个简单的解决方案,如 XAML 或其他东西)

最佳答案

在 ViewModel 中为 SelectedItem 创建一个属性。将其绑定(bind)在 View 的 ListView 中。使用转换器设置绑定(bind)高度和宽度,并将所有逻辑移到那里。

关于c# - (MVVM/WPF) 在 View 模型中操作 View 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40564064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com