0
我有一個C#庫類的實體類,並鏈接到Silverlight的類庫 MVVM屬性(實體必須在C#類,因爲與其他系統的遺留兼容性的)與鏈接複雜的階級和CanExecute接力指揮不靈
實施例(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依賴於測試值在識別TestClass。 ...
PressCommand = new RelayCommand(() =>
{
DoSomething();
},() => TestProp.TestValue != string.empty);
但是,如果TestValue中發生了變化(不同則爲空字符串),Pres sCommand CanExecute doen't似乎才注意到這個變化,並沒有啓用,使其無法使用......
是否有可能使用CanExecute用這種設置TU
感謝您的屬性更改!您的靈魂/環繞工程非常棒! 順便說一句GalaSoft MVVM是RaiseCanexecuteChanged(),而不是CanExecuteChanged()我的不好,對不起任何人閱讀... – KolarJ 2010-12-02 09:54:16