У меня есть класс сущностей в классе библиотеки C # и он связан с библиотекой классов Silverlight (сущности должны быть в классе C # из-за устаревшей совместимости с другими системами)
Пример (библиотека C #):
public class TestClass
{
private string _testValue;
public string TestValue
{
get { return _testValue; }
set
{
if (_testValue!= value)
{
_testValue = value;
OnPropertyChanged("TestValue");
}
}
}}
Этот класс связан с библиотекой классов Silverlight.
В MVVM есть свойство
private TestClass _testProp = new TestClass();
public TestClass TestProp
{
get
{
return _testProp ;
}
set
{
if (value != _testProp )
{
_testProp = value;
RaisePropertyChanged("TestProp");
PressCommand.CanExecuteChanged();
}
}
}
Свойство привязано к элементу управления в XAML
<TextBox Text="{Binding TestProp.TestValue, Mode=TwoWay}">
<Button Content="Press" Command="{Binding PressCommand}" />
Я хочу управлять кнопкой с помощью RelayCommands. CanExecute зависит от TestValue в TestClass ...
PressCommand = new RelayCommand(() =>
{
DoSomething();
}, () => TestProp.TestValue != string.empty);
Однако, если TestValue изменен (отличается от пустой строки), PressCommand CanExecute не будеткажется, замечает изменение и не активируется, что делает его непригодным для использования ...
Возможно ли использовать CanExecute с таким набором настроек