我ViewModel1和View1相关联.我ViewModel2使用IWindowManagerobject 从(另一个viewmodel)启动对话框窗口.ViewModel2类中的代码:
windowManager.ShowDialog(new ViewModel());
Run Code Online (Sandbox Code Playgroud)
所以,我有Viewop窗口和View1用户控件.
我的答案是下一个 - 我可以使用红色关闭按钮关闭该对话框窗口,但是如何使用我的特定按钮(包含在View1用户控件中)关闭它,类似"取消"按钮和关闭命令(Command={Binding CancelCommand}),CancelCommand当然包含在ViewModel1课堂上.
我在某个面板上有两个控件:textbox和combobox:
<TextBox Text="{Binding ShapeName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" />
<ComboBox SelectedItem="{Binding ActiveStageViewModel, Mode=OneWayToSource, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" />
Run Code Online (Sandbox Code Playgroud)
当我在组合框上选择一些东西时,我需要强制对文本框进行idataerrorinfo验证.怎么做?
来自viewmodel的代码:
string IDataErrorInfo.this[string propertyName]
{
get
{
var error = string.Empty;
if (propertyName == Expression.GetPropertyName(() => ActiveStageViewModel))
{
// TODO: Add functionality to force ShapeName property validation
return error;
}
if (propertyName == Expression.GetPropertyName(() => ShapeName))
{
error = ValidateShapeName();
}
TooltipMessage = error;
return error;
}
}
Run Code Online (Sandbox Code Playgroud) 如何在List1中添加查找列并将其与List2中的SomeField绑定,然后用纯文本填充此查阅列(仅使用代码)?
我有代码:
<ListBox Style="{StaticResource DeviceListBox}"
ItemsSource="{Binding MeterList, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"
SelectedItem="{Binding CurrentMeter, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"
ItemContainerStyleSelector="{StaticResource DeviceListItemStyleSelector}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Style="{StaticResource DeviceListText}" Text="{Binding Name}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
Run Code Online (Sandbox Code Playgroud)
我ItemContainerStyleSelector="{StaticResource DeviceListItemStyleSelector}"用来改变每个列表框项目中的背景颜色(例如黑色或银色,请参阅 - http://msdn.microsoft.com/en-us/library/system.windows.controls.styleselector.aspx).它有效.但是,如果我添加ItemContainerStyle="{StaticResource DeviceListItemStyle}"创建一些触发器等DeviceListItemStyle然后DeviceListItemStyleSelector不起作用.请帮帮我!)