gpt4 book ai didi

c# - XAML 中的组合框选择更改

转载 作者:太空宇宙 更新时间:2023-11-03 21:46:00 25 4
gpt4 key购买 nike

我的 UserControl 中有一个 Combobox 和两个按钮。是否可以设置这些按钮以直接在 XAML 中更改 Combobox 的选定索引?

我通过两种方法做到了这一点:

代码隐藏

 private void nextBut_Click(object sender, RoutedEventArgs e)
{
combo.SelectedIndex++;
}

private void prevBut_Click(object sender, RoutedEventArgs e)
{

combo.SelectedIndex--;
}

或者通过将命令绑定(bind)到这些按钮并在我的 ModelView 中定义该命令。

我还有一个关于 XAML 的问题,我真的不知道是问一个不同的问题还是利用这个你已经在读我的机会!我确信它必须简单明了(至少对于这里的 WPF 专家而言):

我有一个包含 UserControlItemsControl,但可能有多个或没有(因为您可以创建更多或删除)。我想要一个 Checkbox 是否启用取决于我的 ItemsContol 中是否有元素(如果没有则禁用)。我认为这可以通过命令验证来完成,但对我来说看起来很难,因为我是这个世界的新手。这也可以通过代码隐藏来完成,但我想避免它。 (就像定义绑定(bind)到该 Checkbox 的 bool 属性一样,编写类似 if(myItems.Count==0)

的内容

最佳答案

我宁愿将 SelectedItem 属性绑定(bind)到 ViewModel 中的某些属性,并将这些按钮绑定(bind)到 ViewModel 中的某些命令。这样可以将状态数据 (selectedItem) 保留在 ViewModel 中,并可以使用它来执行所需的任何其他逻辑,从而消除对代码隐藏的需要。

对于 CheckBox,我宁愿在 ViewModel 中放置一个 bool 属性,并在您添加/删除项目时通知它。

public bool HasItems {get {return Items.Any(); } }

public void AddItem()
{
//...Add Items
NotifyPropertyChanged("HasItems");
}

public void RemoveItem()
{
//...Remove Item
NotifyPropertyChanged("HasItems");
}

这消除了对额外转换器的需要。

关于c# - XAML 中的组合框选择更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17010710/

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