上图:用户自定义CS里面代码如下:自定义控件XAML里面的代码如下:调用用户自定义控件的页面代码如下:CItySelected的属性值就是我们点击确定按钮以后得到的值,通过双向绑定在VIewModel里面取到值就可以了转载于:https://www.cnblogs.com/lijin/p/3392983.html...
Action
>, string> bindData =
(xamDataGrid, selectedRowsCommand, rowsPropertyName) =>
BindingOperations.SetBinding(xamDataGrid, DataGrid.ItemsSourceProperty,
new Binding
Source =
ViewModel
,
Path = new PropertyPath(rowsPropertyName),
Mode = BindingMode.OneWay
// TODO : 全选命令未绑定到vm
var contextMenu = (MenuItem)xamDataGrid.ContextMenu.Items[0];
contextMenu.Command = ApplicationCommands.SelectAll;
contextMenu.Header = "全选";
var commandTrigger = (EventCommandTrigger)CommandSource.GetTriggers(xamDataGrid);
BindingOperations.SetBinding(commandTrigger, EventCommandTrigger.CommandParameterProperty,
new Binding
Source = xamDataGrid.SelectedItems,
commandTrigger.Command = selectedRowsCommand;
commandTrigger.RoutedEvent = DataGrid.SelectionChangedEvent;
commandTrigger.UpdateCommandParameter = true;
const string SHARED_DATAGRID = "xgShared";
var
viewModel
= (Main
ViewModel
)
ViewModel
;
var xdgSystem = (DataGrid)Resources[SHARED_DATAGRID];
bindData(xdgSystem,
viewModel
.SelectedSystemRowsCommand,
"SystemRows");
placeSystem.Content = xdgSystem;
var xdgImport = (DataGrid)Resources[SHARED_DATAGRID];
bindData(xdgImport,
viewModel
.SelectedImportRowsCommand,
"ImportRows");
placeImport.Content = xdgImport;
1.利用视觉树查找方法
//
获取
视觉树上的控件
private childItem FindVisualChild<childItem>(DependencyObject obj) where childItem : DependencyObject
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i
好久没写博客了,关于
WPF
的东西网上有很多 知道与不知道的网上都一大堆,现在做一个项目遇到一个问题 如何
获取
模版
里面
的
值
到CS文件去,如果是用MVVM去写大不了可以去
VIEWMODEL
里去封装调用。但有些功能就必须写在事件里,那么问题就来了 在模版里的控件如何去找了!我想过用反射 很麻烦后来跟前辈们一起想到了两个方法 贴出来 让各位参考 然后提出不足的地方
private void bt
<TextBox x:Name="textBox1" Width="300" FontSize="15" />
<TextBox Width="25" Height="25" Text="{Binding Path=Text,ElementName=textBox1}" />
Path=想要取的元素(控件)的
值
ElementName=元素(控件)的名称(x:Name)
WPF
获取
控件模板的控件和
值
假设我们在
WPF
定义控件模板时,Button在模板内部有个由Template生成的控件Textbox,它的x:name=”TextVBox1” ,它们并不冲突,但Button内部不会看到控件的细节,控件内部元素也不会去理会控件外部有什么,如果我们要从外界访问Button内部的控件,
获取
它的属性
值
应该怎么做呢?其实
WPF
为我们准备了访问控件内部的代码的入口。
Cont...
View层:
<Windowxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
cal:Message.Attach="[Event Loaded]=[Action WindowL...
相信用过MVVM的人都知道MVVM最大的好处就在于分离View和
ViewModel
减少UI对逻辑处理代码的依赖程度,用以达到一定程度的UI修改可以不用或者很少的修改
ViewModel
就能使项目依然正常的运行。
然后,有些时候并不能完全避免需要在
ViewModel
中对UI控件进行处理,例如:在以下代码中,我们需要当点击Add按钮时在StackPanel中动态添加一些东西,比如:新的Button,新...