请教sl绑定条件的问题!

一只熊猫 2012-02-27 02:40:05
类型一个button.isenable想绑定 listbox.items.count > 0 ,或button.isenbale绑定 !listbox.isenable,类似这种的绑定该怎么写呢?
...全文
55 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ktei2008 2012-02-28
  • 打赏
  • 举报
回复
[Quote=引用楼主 going1981 的回复:]
类型一个button.isenable想绑定 listbox.items.count > 0 ,或button.isenbale绑定 !listbox.isenable,类似这种的绑定该怎么写呢?
[/Quote]

可以采用楼上的Converter,也可以在ViewModel中添加一个Command,然后在CanExecute中写入你的条件。SL开发,不用MVVM的话,没有其他更好的模式。
一只熊猫 2012-02-27
  • 打赏
  • 举报
回复
刚开始真正的用sl写程序,倒是看了一些mvvm的资料,一知半解的,没敢用。
梦里独赏花 2012-02-27
  • 打赏
  • 举报
回复
楼上所说的MVVM确实是个不错的框架
沝林 2012-02-27
  • 打赏
  • 举报
回复
前面一种情况也可以用相同的思路来做,但是最方便还是通过Button绑定Command来实现,通过设置CanExecute参数即可,所以如果程序中要用到绑定,最好还是用mvvm框架来做
沝林 2012-02-27
  • 打赏
  • 举报
回复
最简单,写一个Converter,拿后面一种情况做示例吧:

首先写一个Converter类:

public class BoolReverseConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
bool itemvalue;

if (!Boolean.TryParse(value.ToString(), out itemvalue))
{
return false;
}

return !itemvalue;
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
bool itemvalue;

if (!Boolean.TryParse(value.ToString(), out itemvalue))
{
return false;
}

return !itemvalue;
}

}


在xaml中引用Converter类所在命名控件
xmlns:converter="clr-namespace:SilverlightApplication1"

在xaml中添加Converter资源
<UserControl.Resources>
<ResourceDictionary>
<converter:BoolReverseConverter x:Key="BoolReverseConverterKey"/>
</ResourceDictionary>
</UserControl.Resources>

最后在绑定时使用转换器:
<Button IsEnabled="{Binding IsEnabled, ElementName=listboxName,Converter={StaticResource BoolReverseConverterKey}}"/>

8,737

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧