[UWP - Windows 10]
我是MVVM-Light的新手,因此我遇到了一些启动问题。我创建了一个名为gsub("(.*).{2}$","\\1",postcodes)
的自定义Usercontrol,其中包含此xaml:
TileToolbar
现在我想为每个RadioButton添加 <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<RadioButton Style="{StaticResource NavRadioButtonStyle}" Tag="" Foreground="Green"></RadioButton>
<RadioButton Style="{StaticResource NavRadioButtonStyle}" Tag="" Foreground="Green"></RadioButton>
<RadioButton Style="{StaticResource NavRadioButtonStyle}" Tag="" Foreground="Green"></RadioButton>
</StackPanel>
,我希望每个包含自定义用户控件的页面能够绑定自定义RelayCommand
。
RelayCommand
属性并在viewmodel中实现该方法(例如Command
)实际工作 - 缩短xaml:MainViewModel
<RadioButton Command="{Binding Command}"></RadioButton>
我创建了一个类型为RelayCommand的依赖项属性,但TemplateBinding不起作用。 所以我的问题:
如何在UserControl中创建类型<TileToolbar PinCommand={Binding Command}></TileToolbar>
的{{1}}属性,以便稍后可以在xaml中绑定到PinCommand
?
答案 0 :(得分:2)
所以我的问题是:如何在UserControl中创建类似RelayCommand类型的PinCommand属性,以便稍后可以在xaml中绑定到它,例如在Mainpage上?
您可以在PinCommand
代码后面的RelayCommand
类型中注册UserControl
,例如:
public static DependencyProperty PinCommandProperty = DependencyProperty.Register("PinCommand", typeof(RelayCommand), typeof(TileToolbar), new PropertyMetadata(null));
public RelayCommand PinCommand
{
get
{
return (RelayCommand)GetValue(PinCommandProperty);
}
set
{
SetValue(PinCommandProperty, value);
}
}
现在,您可以在TileToolbar
中使用此MainPage
,例如:
<Controls:TileToolbar Grid.Row="1" VerticalAlignment="Bottom" PinCommand="{Binding pinCommand, Mode=OneWay}" />
视图模型中的代码如下:
private RelayCommand _pinCommand;
public RelayCommand pinCommand
{
get
{
if (_pinCommand == null)
{
_pinCommand = new RelayCommand(() =>
{
//TODO:
},
() => true);
}
return _pinCommand;
}
}
对于将Command
RadioButton
PinCommand
连接到TileToolBar
<RadioButton Tag="" Foreground="Green" Command="{x:Bind PinCommand, Mode=OneWay}"></RadioButton>
的工作,您可以在用户控件中执行以下示例代码:
{{1}}