WPF+Caliburn.Micro 杂记_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > WPF+Caliburn.Micro 杂记

WPF+Caliburn.Micro 杂记

 2013/11/13 20:50:11  李晋  博客园  我要评论(0)
  • 摘要:开发过程中的小问题总结1DataGrid的Header里面给Checkbox绑定IsEnabled,绑不上去.原因:在DataGrid直接{BindingEnabled}这么写,CM默认是去找DataGrid,所以找不到,改成IsEnabled="{BindingDataContext.Enabled,RelativeSource={RelativeSourceAncestorType={x:TypeWindow}},Mode=TwoWay}"指向WIndow就可以找到了<
  • 标签:

 

开发过程中的小问题总结

1DataGrid的Header里面给Checkbox绑定IsEnabled,绑不上去. 

原因:在DataGrid直接{Binding Enabled}这么写,CM默认是去找DataGrid,所以找不到,改成

IsEnabled="{Binding DataContext.Enabled,RelativeSource={RelativeSource AncestorType={x:Type Window}},Mode=TwoWay}"

指向WIndow就可以找到了

<DataGridTemplateColumn.Header>
<CheckBox cal:Action.Target="{Binding ElementName=List}"
IsEnabled="{Binding Enabled}"  绑定IsEnabled
cal:Message.Attach="[Event Checked]=[Action SelectAll];[Event Unchecked]=[Action UnselectAll]"/>
</DataGridTemplateColumn.Header>

2由A页面跳转到B页面,再由B页面返回一个值

解决方法:可以定义一个事件

A页面

public void Search()
{
WindowManager window = new WindowManager();
BViewModel search = new BViewModel(itle, false);
search.Get += new EventHandler(SearchGuid);//注册事件
window.ShowDialog(search);//打开窗体
}

private void SearchGuid(object sender, EventArgs e)
{
得到传过来的值 = ((B) sender).Strmodule;
}

B页面

public void 触发这个事件()
{
if (GetDepartGuid != null)
{
Get(this, EventArgs.Empty);
}
}
}

定义事件

public event EventHandler Get; 

上一篇: EF4.1之贪婪加载和延迟加载 下一篇: 没有下一篇了!
  • 相关文章
发表评论
用户名: 匿名