я создать свойство зависимостей, чтобы закрыть вид из модели представления,Как привязать свойство зависимости WPF к окну?
DependencyProperty:
public static class WindowBehaviors
{
public static readonly DependencyProperty IsOpenProperty =
DependencyProperty.RegisterAttached("IsOpen"
, typeof(bool),
typeof(WindowBehaviors),
new UIPropertyMetadata(false, IsOpenChanged));
private static void IsOpenChanged(DependencyObject obj,DependencyPropertyChangedEventArgs args)
{
Window window = Window.GetWindow(obj);
if (window != null && ((bool)args.NewValue))
window.Close();
}
public static bool GetIsOpen(Window target)
{
return (bool)target.GetValue(IsOpenProperty);
}
public static void SetIsOpen(Window target, bool value)
{
target.SetValue(IsOpenProperty, value);
}
}
и использовать его в моем XAML как это:
<window
...
Command:WindowBehaviors.IsOpen="True">
это работа в порядке, но когда Я хочу привязать его к свойству в viewModel, он не работает, и я думаю, он не работает, потому что я определяю ресурс позже в xaml.
в XAML:
<Window.Resources>
<VVM:myVieModel x:Key="myVieModel"/>
</Window.Resources>
и я не знаю, что я должен делать, где я должен поставить это:
Command:WindowBehaviors.IsOpen="{binding Isopen}"
попробовать это 'Команда: WindowBehaviors.IsOpen =" {Binding Isopen, Mode = TwoWay} «Возможно, ваше значение привязки неверно. 'o' отображается в нижнем регистре. – ebattulga
Нет, это не проблема. Я не могу связать что-либо перед определением ресурса, например, для заголовка я должен поставить это после определения ресурса: –
Isopen - свойство myViewModel? – ebattulga