WPF中的ShowDialog方法與Show方法
InputWindow inputwin=new InputWindow();
bool? b=inputwin.ShowDialog();
——如果窗口是用ShowDialog方法打開的,那麼新窗口中對DialogResult賦值會自動關閉新窗口,並且把DialogResult的值通過ShowDialog方法的返回值返回。
——ShowDialog()的返回值類型是bool?,而Show()的返回值類型是void,如在新窗口中沒有對DialogResult屬性進行賦值,直接關閉窗口,那麼返回值爲false。
自行指定綁定的數據源RelativeSource
在數據綁定中,除了正常的數據模版綁定,還會涉及到模板內控件的事件綁定,在模板的數據綁定中只能顯示綁定的XXXModel中的字段,因爲DataContext類型爲XXXModel。我們想綁定XXXViewModel中的CompleteCommand事件,就需要自行指定綁定的數據源。(其他屬性如Content的綁定也同此)
<Window>
<Button Command="{Binding DataContext.XXXCommand, RelativeSource={RelativeSource AncestorType=Window}}" CommandParameter="{Binding Path=DataContext, RelativeSource={RelativeSource Mode=FindAncestor, AncestorLevel=1,AncestorType=ItemsPresenter}}" />
</Window>
AncestorLevel來確定向上查找的級別,AncestorType確定要查找的元素
DataGrid控件的過濾(Filter)
在界面上過濾條件A==條件B的數據
Predicate<object> filter = new Predicate<object>((x) => (條件A==條件B));
CollectionViewSource.GetDefaultView(xaml綁定的ItemSource).Filter = filter;