WPF,请问绑定的转换器如何传递一个对象?

fdt4b 2014-03-28 11:57:21

<Window x:Class="WPF2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WPF2"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<local:ContentConvert x:Key="aa"/>
</Window.Resources>
<Grid Name="grid1">
<Button Name="button1" Content="萧蔷" Height="30" Width="60"/>
<Button Name="button2" Content="{Binding ElementName=button1, Path=Content, Converter={StaticResource aa}}"/>
</Grid>
</Window>



class ContentConvert : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string content = value as string;
if (content == null)
return null;
return "我不喜欢" + content;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}


上面的数据绑定中,将button2的Content绑定到button1的Content,并使用了自定义转换器。现在我想实现下面这样一个功能,那就是如果button2自身的布局属性中,水平布局是靠左的,也就是如果button2的HorizontalAlignment 属性值为left的话,就返回空字符串。于是我想在Binding的ConverterParameter属性传递一个button2对象的引用,然后在转换器中再判断其HorizontalAlignment属性。请问,该怎么为Binding的ConverterParameter属性传递一个对象呢?
...全文
360 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cheng2005 2014-04-02
  • 打赏
  • 举报
回复
请使用MultiBinding,因为你的这个需求其实是要求一个值由多个条件决定。 http://msdn.microsoft.com/zh-cn/library/system.windows.data.multibinding.aspx
仙剑 2014-04-02
  • 打赏
  • 举报
回复
直接 Content="{Binding}" 就行了
fdt4b 2014-03-31
  • 打赏
  • 举报
回复
有人知道吗??
ssd45b 2014-03-31
  • 打赏
  • 举报
回复
帮顶............
fdt4b 2014-03-29
  • 打赏
  • 举报
回复
有人知道吗??
fdt4b 2014-03-28
  • 打赏
  • 举报
回复
引用 2 楼 ckl881003 的回复:
定义一个触发器,如果靠左,就把content取消绑定。
如果要求靠左的时候,字符串为"张三"呢,而不是空字符串,那又该怎么处理呢?
fdt4b 2014-03-28
  • 打赏
  • 举报
回复
引用 2 楼 ckl881003 的回复:
定义一个触发器,如果靠左,就把content取消绑定。
如果要求靠左的时候,字符串为"张三"呢,而不是空字符串,那又该怎么处理呢?
ckl881003 2014-03-28
  • 打赏
  • 举报
回复
引用 3 楼 u014410667 的回复:
[quote=引用 2 楼 ckl881003 的回复:] 定义一个触发器,如果靠左,就把content取消绑定。
难道只有在后台设置了?[/quote] 不用后台啊 直接写在xaml里面不就好了
fdt4b 2014-03-28
  • 打赏
  • 举报
回复
引用 2 楼 ckl881003 的回复:
定义一个触发器,如果靠左,就把content取消绑定。
难道只有在后台设置了?
ckl881003 2014-03-28
  • 打赏
  • 举报
回复
定义一个触发器,如果靠左,就把content取消绑定。
exception92 2014-03-28
  • 打赏
  • 举报
回复
这个不可以。ConverterParameter是不可以绑定的。

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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